fix: workover of the monaco update
This commit is contained in:
@@ -1,35 +0,0 @@
|
||||
// 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(" ")}`);
|
||||
};
|
||||
})();
|
||||
@@ -4,7 +4,51 @@ import { registerLiquidLanguage, registerMarkdownWithMacrosLanguage } from "./la
|
||||
let monacoLoaderPromise;
|
||||
const monacoEditors = new Map();
|
||||
|
||||
const monacoWorkerUrls = {
|
||||
editor: "/assets/monaco/editor.worker.js",
|
||||
css: "/assets/monaco/css.worker.js",
|
||||
html: "/assets/monaco/html.worker.js",
|
||||
json: "/assets/monaco/json.worker.js",
|
||||
ts: "/assets/monaco/ts.worker.js"
|
||||
};
|
||||
|
||||
const workerNameForLanguage = (label) => {
|
||||
switch (label) {
|
||||
case "css":
|
||||
case "scss":
|
||||
case "less":
|
||||
return "css";
|
||||
case "html":
|
||||
case "handlebars":
|
||||
case "razor":
|
||||
return "html";
|
||||
case "json":
|
||||
return "json";
|
||||
case "typescript":
|
||||
case "javascript":
|
||||
return "ts";
|
||||
default:
|
||||
return "editor";
|
||||
}
|
||||
};
|
||||
|
||||
const ensureMonacoEnvironment = () => {
|
||||
if (globalThis.MonacoEnvironment?.getWorker) {
|
||||
return;
|
||||
}
|
||||
|
||||
globalThis.MonacoEnvironment = {
|
||||
...globalThis.MonacoEnvironment,
|
||||
getWorker(_workerId, label) {
|
||||
const workerName = workerNameForLanguage(label);
|
||||
return new Worker(monacoWorkerUrls[workerName], { name: label, type: "module" });
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
export const loadMonaco = () => {
|
||||
ensureMonacoEnvironment();
|
||||
|
||||
if (window.monaco?.editor) {
|
||||
ensureMonacoTheme(window.monaco);
|
||||
registerLiquidLanguage(window.monaco);
|
||||
|
||||
1
assets/js/monaco_workers/css.worker.js
Normal file
1
assets/js/monaco_workers/css.worker.js
Normal file
@@ -0,0 +1 @@
|
||||
import "monaco-editor/esm/vs/language/css/css.worker.js";
|
||||
1
assets/js/monaco_workers/editor.worker.js
Normal file
1
assets/js/monaco_workers/editor.worker.js
Normal file
@@ -0,0 +1 @@
|
||||
import "monaco-editor/esm/vs/editor/editor.worker.js";
|
||||
1
assets/js/monaco_workers/html.worker.js
Normal file
1
assets/js/monaco_workers/html.worker.js
Normal file
@@ -0,0 +1 @@
|
||||
import "monaco-editor/esm/vs/language/html/html.worker.js";
|
||||
1
assets/js/monaco_workers/json.worker.js
Normal file
1
assets/js/monaco_workers/json.worker.js
Normal file
@@ -0,0 +1 @@
|
||||
import "monaco-editor/esm/vs/language/json/json.worker.js";
|
||||
1
assets/js/monaco_workers/ts.worker.js
Normal file
1
assets/js/monaco_workers/ts.worker.js
Normal file
@@ -0,0 +1 @@
|
||||
import "monaco-editor/esm/vs/language/typescript/ts.worker.js";
|
||||
Reference in New Issue
Block a user