fix: configure MonacoEnvironment.getWorkerUrl to prevent worker 404 fallback - #39341
Open
li-lizhe wants to merge 4 commits into
Open
fix: configure MonacoEnvironment.getWorkerUrl to prevent worker 404 fallback#39341li-lizhe wants to merge 4 commits into
li-lizhe wants to merge 4 commits into
Conversation
…allback Without MonacoEnvironment.getWorkerUrl, Monaco Editor appends the worker label as a URL fragment (workerMain.js#editorWorkerService). Browsers encode # to %23, causing a 404. The worker falls back to the main thread every time the workflow editor is opened. This fix returns the worker URL without the #label fragment. The worker name is preserved via the name parameter of new Worker().
TypeScript complains that 'MonacoEnvironment' does not exist on 'Window & typeof globalThis'. Use type assertion to bypass it.
Replace (self as any) type assertion with window.MonacoEnvironment, backed by the type declaration added to global.d.ts.
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Fixes #39340
Monaco Editor's Web Worker always fails to load because
MonacoEnvironment.getWorkerUrlis not configured. Without it, Monaco appends the worker label as a URL fragment (workerMain.js#editorWorkerService), which browsers encode to%23, causing a 404. The worker falls back to the main thread every time.Solution
Add
self.MonacoEnvironment.getWorkerUrlconfiguration that returns the worker URL without the#labelfragment. The worker name is preserved via thenameparameter ofnew Worker().Changes
File:
web/app/components/workflow/nodes/_base/components/editor/code-editor/index.tsxBefore:
After:
Testing
workerMain.jsloads successfully (304, 2ms) without%23encodingeditorWorkerServiceandjsonboth affectedgetWorkerUrlis the standard Monaco Editor configurationImpact