1
1
import fetch from '@webreflection/fetch' ;
2
2
import { $ } from 'basic-devtools' ;
3
3
4
+ import { workers , workersHandler } from './workers.js' ;
4
5
import $xworker from './worker/class.js' ;
5
6
import workerURL from './worker/url.js' ;
6
7
import { getRuntime , getRuntimeID } from './loader.js' ;
@@ -65,6 +66,7 @@ const execute = async (currentScript, source, XWorker, isAsync) => {
65
66
XWorker,
66
67
currentScript,
67
68
js_modules : JSModules ,
69
+ workers : workersHandler ,
68
70
} ) ;
69
71
dispatch ( currentScript , type , 'ready' ) ;
70
72
const result = module [ isAsync ? 'runAsync' : 'run' ] ( interpreter , content ) ;
@@ -122,7 +124,7 @@ export const handle = async (script) => {
122
124
// allow a shared config among scripts, beside interpreter,
123
125
// and/or source code with different config or interpreter
124
126
const {
125
- attributes : { async : isAsync , config, env, target, version } ,
127
+ attributes : { async : isAsync , config, env, name : wn , target, version } ,
126
128
src,
127
129
type,
128
130
} = script ;
@@ -140,12 +142,14 @@ export const handle = async (script) => {
140
142
const xworker = new XWorker ( url , {
141
143
...nodeInfo ( script , type ) ,
142
144
async : ! ! isAsync ,
143
- config : configValue
145
+ config : configValue ,
144
146
} ) ;
145
147
handled . set (
146
148
defineProperty ( script , 'xworker' , { value : xworker } ) ,
147
149
{ xworker }
148
150
) ;
151
+ const workerName = wn ?. value ;
152
+ if ( workerName ) workers [ workerName ] . resolve ( xworker . ready ) ;
149
153
return ;
150
154
}
151
155
/* c8 ignore stop */
0 commit comments