chore: updated monaco and tools to update monaco
This commit is contained in:
35
assets/js/error_reporter.js
Normal file
35
assets/js/error_reporter.js
Normal file
@@ -0,0 +1,35 @@
|
||||
// App-wide error reporter — catches JS errors and displays them as an overlay.
|
||||
// Enables debugging in WKWebView where devtools are unavailable.
|
||||
(function () {
|
||||
const overlay = document.createElement("div");
|
||||
overlay.id = "error-reporter";
|
||||
overlay.style.cssText =
|
||||
"position:fixed;bottom:0;left:0;right:0;max-height:200px;overflow:auto;background:#1a1a2e;color:#f0f0f0;font:12px monospace;padding:8px 12px;border-top:2px solid #e74c3c;z-index:99999;display:none;";
|
||||
overlay.innerHTML = '<strong style="color:#e74c3c">⚠ JS Errors</strong><pre id="error-reporter-log"></pre>';
|
||||
document.body.appendChild(overlay);
|
||||
|
||||
const log = document.getElementById("error-reporter-log");
|
||||
|
||||
const append = (msg) => {
|
||||
overlay.style.display = "block";
|
||||
log.textContent += msg + "\n";
|
||||
overlay.scrollTop = overlay.scrollHeight;
|
||||
};
|
||||
|
||||
window.addEventListener("error", (e) => {
|
||||
const src = e.filename || "";
|
||||
const loc = e.lineno !== undefined ? `:${e.lineno}` : "";
|
||||
append(`[${new Date().toLocaleTimeString()}] ${e.message || e.error}\n at ${src}${loc}`);
|
||||
});
|
||||
|
||||
window.addEventListener("unhandledrejection", (e) => {
|
||||
append(`[${new Date().toLocaleTimeString()}] Unhandled rejection: ${e.reason}`);
|
||||
});
|
||||
|
||||
// Also wrap console.error to catch Monaco errors
|
||||
const origError = console.error;
|
||||
console.error = (...args) => {
|
||||
origError.apply(console, args);
|
||||
append(`[${new Date().toLocaleTimeString()}] ${args.join(" ")}`);
|
||||
};
|
||||
})();
|
||||
Reference in New Issue
Block a user