2026-03-13 07:28:15 +00:00

39 lines
1.1 KiB
TypeScript

import { loader } from "@monaco-editor/react";
import * as monaco from "monaco-editor";
import editorWorker from "monaco-editor/esm/vs/editor/editor.worker?worker";
import cssWorker from "monaco-editor/esm/vs/language/css/css.worker?worker";
import tsWorker from "monaco-editor/esm/vs/language/typescript/ts.worker?worker";
import yamlWorker from "monaco-yaml/yaml.worker?worker";
if (typeof self !== "undefined") {
const globalScope = self as typeof self & {
MonacoEnvironment?: {
getWorker: (workerId: string, label: string) => Worker;
};
};
globalScope.MonacoEnvironment = {
getWorker(_workerId: string, label: string) {
switch (label) {
case "css":
case "less":
case "scss":
return new cssWorker();
case "typescript":
case "javascript":
return new tsWorker();
case "yaml":
return new yamlWorker();
default:
return new editorWorker();
}
},
};
}
loader.config({ monaco });
void loader.init().catch((error: unknown) => {
console.error("[monaco] Monaco initialization failed:", error);
});