mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-04-13 05:20:28 +08:00
39 lines
1.1 KiB
TypeScript
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);
|
|
});
|