11import fetch from '@webreflection/fetch' ;
22import { $ } from 'basic-devtools' ;
33
4+ import { workers , workersHandler } from './workers.js' ;
45import $xworker from './worker/class.js' ;
56import workerURL from './worker/url.js' ;
67import { getRuntime , getRuntimeID } from './loader.js' ;
@@ -65,6 +66,7 @@ const execute = async (currentScript, source, XWorker, isAsync) => {
6566 XWorker,
6667 currentScript,
6768 js_modules : JSModules ,
69+ workers : workersHandler ,
6870 } ) ;
6971 dispatch ( currentScript , type , 'ready' ) ;
7072 const result = module [ isAsync ? 'runAsync' : 'run' ] ( interpreter , content ) ;
@@ -122,7 +124,7 @@ export const handle = async (script) => {
122124 // allow a shared config among scripts, beside interpreter,
123125 // and/or source code with different config or interpreter
124126 const {
125- attributes : { async : isAsync , config, env, target, version } ,
127+ attributes : { async : isAsync , config, env, name : wn , target, version } ,
126128 src,
127129 type,
128130 } = script ;
@@ -140,12 +142,14 @@ export const handle = async (script) => {
140142 const xworker = new XWorker ( url , {
141143 ...nodeInfo ( script , type ) ,
142144 async : ! ! isAsync ,
143- config : configValue
145+ config : configValue ,
144146 } ) ;
145147 handled . set (
146148 defineProperty ( script , 'xworker' , { value : xworker } ) ,
147- { xworker }
149+ { xworker } ,
148150 ) ;
151+ const workerName = wn ?. value ;
152+ if ( workerName ) workers [ workerName ] . resolve ( xworker . ready ) ;
149153 return ;
150154 }
151155 /* c8 ignore stop */
0 commit comments