Modified by www.SourceFiles.app
This commit is contained in:
@@ -1,27 +0,0 @@
|
|||||||
// Captures the original Error out-of-band so server.ts can recover the stack
|
|
||||||
// when h3 has already swallowed the throw into a generic 500 Response.
|
|
||||||
|
|
||||||
let lastCapturedError: { error: unknown; at: number } | undefined;
|
|
||||||
const TTL_MS = 5_000;
|
|
||||||
|
|
||||||
function record(error: unknown) {
|
|
||||||
lastCapturedError = { error, at: Date.now() };
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof globalThis.addEventListener === "function") {
|
|
||||||
globalThis.addEventListener("error", (event) => record((event as ErrorEvent).error ?? event));
|
|
||||||
globalThis.addEventListener("unhandledrejection", (event) =>
|
|
||||||
record((event as PromiseRejectionEvent).reason),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
export function consumeLastCapturedError(): unknown {
|
|
||||||
if (!lastCapturedError) return undefined;
|
|
||||||
if (Date.now() - lastCapturedError.at > TTL_MS) {
|
|
||||||
lastCapturedError = undefined;
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
const { error } = lastCapturedError;
|
|
||||||
lastCapturedError = undefined;
|
|
||||||
return error;
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user