44 lines
1.6 KiB
TypeScript
44 lines
1.6 KiB
TypeScript
import { NODE_STREAM_FEATURE_ENABLED } from "../viewer/nodeStream/nodeStreamFeatureFlag.js";
|
|
|
|
export function exposeDebugApis({ resolveNodeStreamModule }: { resolveNodeStreamModule: (...args: any[]) => any }): void {
|
|
if (typeof window === "undefined") return;
|
|
|
|
(window as any).MajoorDebug = {
|
|
exportMetrics: () => (window as any).MajoorMetrics?.exportMetrics?.(),
|
|
getMetrics: () => (window as any).MajoorMetrics?.getMetricsReport?.(),
|
|
resetMetrics: () => (window as any).MajoorMetrics?.resetMetrics?.(),
|
|
};
|
|
console.debug?.(
|
|
"[Majoor] Debug commands available: window.MajoorDebug.exportMetrics(), window.MajoorDebug.getMetrics(), window.MajoorDebug.resetMetrics()",
|
|
);
|
|
|
|
if (!NODE_STREAM_FEATURE_ENABLED) {
|
|
try {
|
|
delete (window as any).MajoorNodeStream;
|
|
} catch {
|
|
(window as any).MajoorNodeStream = undefined;
|
|
}
|
|
return;
|
|
}
|
|
|
|
const nodeStreamApi =
|
|
(fn: any) =>
|
|
async (...args: any[]) => {
|
|
const mod = await resolveNodeStreamModule();
|
|
return mod?.[fn]?.(...args);
|
|
};
|
|
|
|
(window as any).MajoorNodeStream = {
|
|
mode: "selection-only",
|
|
listAdapters: nodeStreamApi("listAdapters"),
|
|
async getKnownNodeSets() {
|
|
const { getKnownNodeSets } =
|
|
await import("../viewer/nodeStream/adapters/KnownNodesAdapter.js");
|
|
return getKnownNodeSets();
|
|
},
|
|
};
|
|
console.debug?.(
|
|
"[Majoor] NodeStream API: window.MajoorNodeStream.mode, .listAdapters(), .getKnownNodeSets()",
|
|
);
|
|
}
|