@@ -5,6 +5,11 @@ import { runTask, type Task } from './run-task.js';
55
66const MIN_NUM_TASKS_PER_WORKER = 100 ;
77
8+ type WorkerOptions = {
9+ importMetaUrl : string ;
10+ workerFilePath : string ;
11+ } ;
12+
813function batchDatasets < T > (
914 datasets : T [ ] ,
1015 numTasksPerWorker : number ,
@@ -22,11 +27,13 @@ function batchDatasets<T>(
2227}
2328
2429function createRunWorker < U > (
25- workerFilePath : string ,
30+ workerOptions : WorkerOptions ,
2631) : < T > ( datasets : T [ ] ) => Promise < U [ ] > {
32+ const { importMetaUrl, workerFilePath } = workerOptions ;
33+
2734 function runWorker < T > ( datasets : T [ ] ) : Promise < U [ ] > {
2835 return new Promise ( ( resolve , reject ) => {
29- const workerUrl = new URL ( workerFilePath , import . meta . url ) ;
36+ const workerUrl = new URL ( workerFilePath , importMetaUrl ) ;
3037
3138 const worker = new Worker ( workerUrl , {
3239 env : SHARE_ENV ,
@@ -50,12 +57,9 @@ function createRunWorker<U>(
5057
5158export async function parallelize < T extends unknown [ ] , U > (
5259 task : Task < T , U > ,
53- options : {
54- datasets : T [ ] ;
55- workerFilePath : string ;
56- } ,
60+ datasets : T [ ] ,
61+ workerOptions : WorkerOptions ,
5762) : Promise < U [ ] > {
58- const { datasets, workerFilePath } = options ;
5963 const numTasks = datasets . length ;
6064
6165 if ( numTasks < MIN_NUM_TASKS_PER_WORKER ) {
@@ -74,7 +78,7 @@ export async function parallelize<T extends unknown[], U>(
7478 numTasksPerWorker ,
7579 ) ;
7680
77- const runWorker = createRunWorker < U > ( workerFilePath ) ;
81+ const runWorker = createRunWorker < U > ( workerOptions ) ;
7882
7983 const [ mainThreadResults , ...workerResults ] = await Promise . all ( [
8084 runTask ( task , datasetsForMainThread ) ,
0 commit comments