diff --git a/frontend/src/lib/monaco_workers/build_workers.ts b/frontend/src/lib/monaco_workers/build_workers.ts index f9b1d53c7b45e..814254dce43ae 100644 --- a/frontend/src/lib/monaco_workers/build_workers.ts +++ b/frontend/src/lib/monaco_workers/build_workers.ts @@ -1,4 +1,4 @@ -import { useWorkerFactory } from 'monaco-editor-wrapper/workerFactory' +import { initEnhancedMonacoEnvironment } from 'monaco-languageclient/vscode/services' // import cssWorker from 'monaco-editor-wrapper/workers/module/css?worker&url' // import htmlWorker from 'monaco-editor-wrapper/workers/module/html?worker&url' @@ -6,50 +6,56 @@ import { useWorkerFactory } from 'monaco-editor-wrapper/workerFactory' // import editorWorker from 'monaco-editor-wrapper/workers/module/editor?worker&url' export function buildWorkerDefinition() { - useWorkerFactory({ - workerOverrides: { - ignoreMapping: true, - workerLoaders: { - editorWorkerService: () => { - return new Worker( - new URL('monaco-editor-wrapper/workers/module/editor', import.meta.url), - { - type: 'module' - } - ) - }, - javascript: () => { - return new Worker(new URL('monaco-editor-wrapper/workers/module/ts', import.meta.url), { - type: 'module' - }) - }, - typescript: () => { - return new Worker(new URL('monaco-editor-wrapper/workers/module/ts', import.meta.url), { - type: 'module' - }) - }, - json: () => { - return new Worker(new URL('monaco-editor-wrapper/workers/module/json', import.meta.url), { - type: 'module' - }) - }, - html: () => { - return new Worker(new URL('monaco-editor-wrapper/workers/module/html', import.meta.url), { - type: 'module' - }) - }, - css: () => { - return new Worker(new URL('monaco-editor-wrapper/workers/module/css', import.meta.url), { - type: 'module' - }) - }, - graphql: () => { - console.log('Creating graphql worker') - return new Worker(new URL(`./graphql.worker.bundle.js`, import.meta.url), { - name: 'graphql' - }) - } + const envEnhanced = initEnhancedMonacoEnvironment() + + const getWorker = (moduleId: string, label: string) => { + console.log(`getWorker: moduleId: ${moduleId} label: ${label}`) + + let selector = label + let workerLoaders = { + editorWorkerService: () => { + return new Worker(new URL('monaco-editor-wrapper/workers/module/editor', import.meta.url), { + type: 'module' + }) + }, + javascript: () => { + return new Worker(new URL('monaco-editor-wrapper/workers/module/ts', import.meta.url), { + type: 'module' + }) + }, + typescript: () => { + return new Worker(new URL('monaco-editor-wrapper/workers/module/ts', import.meta.url), { + type: 'module' + }) + }, + json: () => { + return new Worker(new URL('monaco-editor-wrapper/workers/module/json', import.meta.url), { + type: 'module' + }) + }, + html: () => { + return new Worker(new URL('monaco-editor-wrapper/workers/module/html', import.meta.url), { + type: 'module' + }) + }, + css: () => { + return new Worker(new URL('monaco-editor-wrapper/workers/module/css', import.meta.url), { + type: 'module' + }) + }, + graphql: () => { + console.log('Creating graphql worker') + return new Worker(new URL(`./graphql.worker.bundle.js`, import.meta.url), { + name: 'graphql' + }) } } - }) + const workerFunc = workerLoaders[selector] + if (workerFunc !== undefined) { + return workerFunc() + } else { + throw new Error(`Unimplemented worker ${label} (${moduleId})`) + } + } + envEnhanced.getWorker = getWorker } diff --git a/frontend/src/routes/test_dev_page/+page.svelte b/frontend/src/routes/test_dev_page/+page.svelte index 4858437d89256..267bd4f2c6899 100644 --- a/frontend/src/routes/test_dev_page/+page.svelte +++ b/frontend/src/routes/test_dev_page/+page.svelte @@ -2,7 +2,8 @@ // import EditableSchemaWrapper from '$lib/components/schema/EditableSchemaWrapper.svelte' // import FlowBuilder from '$lib/components/FlowBuilder.svelte' - import ScriptBuilder from '$lib/components/ScriptBuilder.svelte' + // import ScriptBuilder from '$lib/components/ScriptBuilder.svelte' + import ScriptEditor from '$lib/components/ScriptEditor.svelte' // import type { OpenFlow } from '$lib/gen' // import { writable, type Writable } from 'svelte/store' @@ -50,7 +51,7 @@ }} /> --> - +/> --> + + +
+ +
diff --git a/frontend/vite.config.js b/frontend/vite.config.js index 65e7add420e64..873a68c042e0e 100644 --- a/frontend/vite.config.js +++ b/frontend/vite.config.js @@ -57,6 +57,9 @@ const config = { }, dedupe: ['vscode', 'monaco-editor'] }, + worker: { + format: 'es' + }, assetsInclude: ['**/*.wasm'] }