Surpress react/jsx-runtime errors: Bugfix #2
This commit is contained in:
parent
6a024faece
commit
ad51f7da0c
@ -12,6 +12,9 @@ export default async function (params) {
|
||||
const supress_condition = errors_to_supress
|
||||
.map((e) => `args[0].includes("${e}")`)
|
||||
.join(" || ");
|
||||
const runtime_supress_condition = errors_to_supress
|
||||
.map((e) => `message.includes("${e}")`)
|
||||
.join(" || ");
|
||||
script += `const _ce = console.error.bind(console);\n`;
|
||||
script += `console.error = (...args) => {\n`;
|
||||
script += ` if (typeof args[0] === "string" && (${supress_condition})) return;\n`;
|
||||
@ -26,10 +29,26 @@ export default async function (params) {
|
||||
script += ` overlay.innerHTML = \`<div style="max-width:900px;margin:0 auto"><div style="font-size:18px;font-weight:bold;margin-bottom:12px;color:#ff4444">Runtime Error</div><div style="color:#fff;margin-bottom:16px">\${message}</div>\${source ? \`<div style="color:#888;margin-bottom:16px">\${source}</div>\` : ""}\${stack ? \`<pre style="background:#111;padding:16px;border-radius:6px;overflow:auto;color:#ffa07a;white-space:pre-wrap">\${stack}</pre>\` : ""}<button onclick="this.closest('#__bunext_error_overlay').remove()" style="margin-top:16px;padding:8px 16px;background:#333;color:#fff;border:none;border-radius:4px;cursor:pointer">Dismiss</button></div>\`;\n`;
|
||||
script += ` document.body.appendChild(overlay);\n`;
|
||||
script += `}\n\n`;
|
||||
script += `function __bunext_should_suppress_runtime_error(message) {\n`;
|
||||
script += ` return typeof message === "string" && (${runtime_supress_condition});\n`;
|
||||
script += `}\n\n`;
|
||||
script += `window.addEventListener("error", (e) => {\n`;
|
||||
script += ` __bunext_show_error(e.message, e.filename ? e.filename + ":" + e.lineno + ":" + e.colno : "", e.error?.stack ?? "");\n`;
|
||||
script += ` const message = String(e.message ?? "");\n`;
|
||||
script += ` if (__bunext_should_suppress_runtime_error(message)) {\n`;
|
||||
script += ` e.preventDefault();\n`;
|
||||
script += ` e.stopImmediatePropagation();\n`;
|
||||
script += ` return;\n`;
|
||||
script += ` }\n`;
|
||||
script += ` __bunext_show_error(message, e.filename ? e.filename + ":" + e.lineno + ":" + e.colno : "", e.error?.stack ?? "");\n`;
|
||||
script += `});\n`;
|
||||
script += `window.addEventListener("unhandledrejection", (e) => __bunext_show_error(String(e.reason?.message ?? e.reason), "", e.reason?.stack ?? ""));\n\n`;
|
||||
script += `window.addEventListener("unhandledrejection", (e) => {\n`;
|
||||
script += ` const message = String(e.reason?.message ?? e.reason ?? "");\n`;
|
||||
script += ` if (__bunext_should_suppress_runtime_error(message)) {\n`;
|
||||
script += ` e.preventDefault();\n`;
|
||||
script += ` return;\n`;
|
||||
script += ` }\n`;
|
||||
script += ` __bunext_show_error(message, "", e.reason?.stack ?? "");\n`;
|
||||
script += `});\n\n`;
|
||||
script += `const hmr = new EventSource("/__hmr");\n`;
|
||||
script += `window.BUNEXT_HMR = hmr;\n`;
|
||||
script += `window.addEventListener("beforeunload", () => hmr.close());\n`;
|
||||
|
||||
@ -23,6 +23,10 @@ export default async function (params?: Params) {
|
||||
.map((e) => `args[0].includes("${e}")`)
|
||||
.join(" || ");
|
||||
|
||||
const runtime_supress_condition = errors_to_supress
|
||||
.map((e) => `message.includes("${e}")`)
|
||||
.join(" || ");
|
||||
|
||||
script += `const _ce = console.error.bind(console);\n`;
|
||||
script += `console.error = (...args) => {\n`;
|
||||
script += ` if (typeof args[0] === "string" && (${supress_condition})) return;\n`;
|
||||
@ -38,10 +42,26 @@ export default async function (params?: Params) {
|
||||
script += ` overlay.innerHTML = \`<div style="max-width:900px;margin:0 auto"><div style="font-size:18px;font-weight:bold;margin-bottom:12px;color:#ff4444">Runtime Error</div><div style="color:#fff;margin-bottom:16px">\${message}</div>\${source ? \`<div style="color:#888;margin-bottom:16px">\${source}</div>\` : ""}\${stack ? \`<pre style="background:#111;padding:16px;border-radius:6px;overflow:auto;color:#ffa07a;white-space:pre-wrap">\${stack}</pre>\` : ""}<button onclick="this.closest('#__bunext_error_overlay').remove()" style="margin-top:16px;padding:8px 16px;background:#333;color:#fff;border:none;border-radius:4px;cursor:pointer">Dismiss</button></div>\`;\n`;
|
||||
script += ` document.body.appendChild(overlay);\n`;
|
||||
script += `}\n\n`;
|
||||
script += `function __bunext_should_suppress_runtime_error(message) {\n`;
|
||||
script += ` return typeof message === "string" && (${runtime_supress_condition});\n`;
|
||||
script += `}\n\n`;
|
||||
script += `window.addEventListener("error", (e) => {\n`;
|
||||
script += ` __bunext_show_error(e.message, e.filename ? e.filename + ":" + e.lineno + ":" + e.colno : "", e.error?.stack ?? "");\n`;
|
||||
script += ` const message = String(e.message ?? "");\n`;
|
||||
script += ` if (__bunext_should_suppress_runtime_error(message)) {\n`;
|
||||
script += ` e.preventDefault();\n`;
|
||||
script += ` e.stopImmediatePropagation();\n`;
|
||||
script += ` return;\n`;
|
||||
script += ` }\n`;
|
||||
script += ` __bunext_show_error(message, e.filename ? e.filename + ":" + e.lineno + ":" + e.colno : "", e.error?.stack ?? "");\n`;
|
||||
script += `});\n`;
|
||||
script += `window.addEventListener("unhandledrejection", (e) => __bunext_show_error(String(e.reason?.message ?? e.reason), "", e.reason?.stack ?? ""));\n\n`;
|
||||
script += `window.addEventListener("unhandledrejection", (e) => {\n`;
|
||||
script += ` const message = String(e.reason?.message ?? e.reason ?? "");\n`;
|
||||
script += ` if (__bunext_should_suppress_runtime_error(message)) {\n`;
|
||||
script += ` e.preventDefault();\n`;
|
||||
script += ` return;\n`;
|
||||
script += ` }\n`;
|
||||
script += ` __bunext_show_error(message, "", e.reason?.stack ?? "");\n`;
|
||||
script += `});\n\n`;
|
||||
|
||||
script += `const hmr = new EventSource("/__hmr");\n`;
|
||||
script += `window.BUNEXT_HMR = hmr;\n`;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user