fix: Allow Workers to be instantiated directly via callback#206
Merged
fix: Allow Workers to be instantiated directly via callback#206
Conversation
froyo-np
approved these changes
Oct 15, 2025
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.
fix: Allow Workers to be instantiated directly via callback
What
When testing out Worker Pools in production builds, the Workers were not being instantiated as expected because the build system (Vite, in this case) was treating the imported worker modules as the
video/mp2tMIME type. After some digging, this was apparently due to the Vite bundler expecting a worker instantiation to be done in a very specific (and not particularly flexible) way.However, Vite did offer an alternative that gave a clue: a worker module could be imported with
?workerat the end of the filename to import it instead as a constructor that could be called, and the docs hinted at the possibility that this could then be used in contexts where the URL of the worker wasn't known.Taking this idea one step further, this PR makes it so that the Worker Pool can accept either a URL (possibly only a temporary thing, since it may never work...) OR a Worker instantiation callback. This was tested using Vite's worker constructor within the callback, and it worked within production builds as well as locally.
How
URLparameter to Worker Pool instantiation with aWorkerInitobject, which can be either aURLor aWorkerInstantiationCallback. AWorkerInstantiationCallbackis an parameter-less function that returns a Worker.PR Checklist
main?