mirror of
https://github.com/harivansh-afk/sandbox-agent.git
synced 2026-04-18 12:03:07 +00:00
* Restore foundry onboarding stack * Consolidate foundry rename * Create foundry tasks without prompts * Rename Foundry handoffs to tasks
35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import type { FrontendErrorContext } from "./types.js";
|
|
|
|
interface FrontendErrorCollectorGlobal {
|
|
setContext: (context: FrontendErrorContext) => void;
|
|
}
|
|
|
|
declare global {
|
|
interface Window {
|
|
__FOUNDRY_FRONTEND_ERROR_COLLECTOR__?: FrontendErrorCollectorGlobal;
|
|
__FOUNDRY_FRONTEND_ERROR_CONTEXT__?: FrontendErrorContext;
|
|
}
|
|
}
|
|
|
|
export function setFrontendErrorContext(context: FrontendErrorContext): void {
|
|
if (typeof window === "undefined") {
|
|
return;
|
|
}
|
|
|
|
const nextContext = sanitizeContext(context);
|
|
window.__FOUNDRY_FRONTEND_ERROR_CONTEXT__ = {
|
|
...(window.__FOUNDRY_FRONTEND_ERROR_CONTEXT__ ?? {}),
|
|
...nextContext,
|
|
};
|
|
window.__FOUNDRY_FRONTEND_ERROR_COLLECTOR__?.setContext(nextContext);
|
|
}
|
|
|
|
function sanitizeContext(input: FrontendErrorContext): FrontendErrorContext {
|
|
const output: FrontendErrorContext = {};
|
|
for (const [key, value] of Object.entries(input)) {
|
|
if (value === null || value === undefined || typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
output[key] = value;
|
|
}
|
|
}
|
|
return output;
|
|
}
|