diff --git a/packages/grafana-data/src/monaco/languageRegistry.ts b/packages/grafana-data/src/monaco/languageRegistry.ts index f12cca29320..963912affed 100644 --- a/packages/grafana-data/src/monaco/languageRegistry.ts +++ b/packages/grafana-data/src/monaco/languageRegistry.ts @@ -4,7 +4,7 @@ import { Registry, RegistryItem } from '../utils/Registry'; * @alpha */ export interface MonacoLanguageRegistryItem extends RegistryItem { - init: () => Worker; + init: () => string; } /** diff --git a/public/app/core/monacoEnv.ts b/public/app/core/monacoEnv.ts index db63c867a1e..a65d707f036 100644 --- a/public/app/core/monacoEnv.ts +++ b/public/app/core/monacoEnv.ts @@ -1,32 +1,41 @@ import { monacoLanguageRegistry } from '@grafana/data'; -import { CorsWorker as Worker } from 'app/core/utils/CorsWorker'; +// TODO: vite - handle CORs with webworkers +// import { CorsWorker as Worker } from 'app/core/utils/CorsWorker'; export function setMonacoEnv() { self.MonacoEnvironment = { getWorker(_moduleId, label) { + const getWorkerModule = (moduleUrl, label) => { + return new Worker(self.MonacoEnvironment.getWorkerUrl(moduleUrl), { + name: label, + type: 'module', + }); + }; + const language = monacoLanguageRegistry.getIfExists(label); if (language) { - return language.init(); + const moduleUrl = language.init(); + return getWorkerModule(moduleUrl, label); } if (label === 'json') { - return new Worker(new URL('monaco-editor/esm/vs/language/json/json.worker', import.meta.url)); + return getWorkerModule('/monaco-editor/esm/vs/language/json/json.worker?worker', label); } if (label === 'css' || label === 'scss' || label === 'less') { - return new Worker(new URL('monaco-editor/esm/vs/language/css/css.worker', import.meta.url)); + return getWorkerModule('/monaco-editor/esm/vs/language/css/css.worker?worker', label); } if (label === 'html' || label === 'handlebars' || label === 'razor') { - return new Worker(new URL('monaco-editor/esm/vs/language/html/html.worker', import.meta.url)); + return getWorkerModule('/monaco-editor/esm/vs/language/html/html.worker?worker', label); } if (label === 'typescript' || label === 'javascript') { - return new Worker(new URL('monaco-editor/esm/vs/language/typescript/ts.worker', import.meta.url)); + return getWorkerModule('/monaco-editor/esm/vs/language/typescript/ts.worker?worker', label); } - return new Worker(new URL('monaco-editor/esm/vs/editor/editor.worker', import.meta.url)); + return getWorkerModule('/monaco-editor/esm/vs/editor/editor.worker?worker', label); }, }; } diff --git a/public/lib/monaco-languages/kusto.ts b/public/lib/monaco-languages/kusto.ts index 27a10c4a83a..3ce4f7fd2e9 100644 --- a/public/lib/monaco-languages/kusto.ts +++ b/public/lib/monaco-languages/kusto.ts @@ -1,5 +1,3 @@ -import { CorsWorker as Worker } from 'app/core/utils/CorsWorker'; - export default function loadKusto() { - return new Worker(new URL('@kusto/monaco-kusto/release/esm/kusto.worker', import.meta.url)); + return '@kusto/monaco-kusto/release/esm/kusto.worker?worker'; }