import { localGet } from "./api.js";
import { recentErrors } from "./errorLog.js";
export async function collectDiagnostics() {
const [buildInfo, feInfo] = await Promise.allSettled([
localGet("/api/build-info"),
localGet("/static/build-info.json"),
]);
return {
timestamp: new Date().toISOString(),
appVersion: settledValue(buildInfo)?.version ?? null,
serverBuildHash: settledValue(buildInfo)?.build_hash ?? null,
spaBundleHash: settledValue(feInfo)?.hash ?? null,
route: location.hash || location.pathname,
node: nonEmpty(window.MOBUX_NODE),
session: nonEmpty(window.MOBUX_SESSION),
userAgent: navigator.userAgent,
recentErrors: recentErrors(),
};
}
function settledValue(settled) {
return settled.status === "fulfilled" ? settled.value : null;
}
function nonEmpty(v) {
return v ? v : null;
}