@@ -8,6 +8,8 @@ import { Logger } from './logger.js';
88interface MyWorker extends Worker {
99 used ?: boolean ;
1010 toKill ?: boolean ;
11+ onMessage ?: ( msg : any ) => void ;
12+ onError ?: ( err : any ) => void ;
1113}
1214
1315const workers = new Map < string , MyWorker > ( ) ;
@@ -48,7 +50,7 @@ async function runInWorker(input: {
4850 ) ;
4951 }
5052
51- worker . on ( 'message' , ( msg ) => {
53+ worker . onMessage = ( msg ) => {
5254 Logger . verbose (
5355 `[Function ${ input . fuctionRequest . functionId } ] [Worker ${ input . fuctionRequest . workerId } ] Worker message` ,
5456 JSON . stringify ( msg ) ,
@@ -65,14 +67,14 @@ async function runInWorker(input: {
6567 worker . toKill = false ;
6668 void worker . terminate ( ) ;
6769 }
68- } ) ;
69- worker . on ( 'error' , ( err ) => {
70+ } ;
71+ worker . onError = ( err ) => {
7072 Logger . error (
7173 `[Function ${ input . fuctionRequest . functionId } ] [Worker ${ input . fuctionRequest . workerId } ] Error` ,
7274 err ,
7375 ) ;
7476 reject ( err ) ;
75- } ) ;
77+ } ;
7678
7779 worker . used = true ;
7880 worker . postMessage ( {
@@ -106,7 +108,7 @@ function startWorker(input: WorkerRequest) {
106108
107109 const localProjectDir = getProjectDirname ( ) ;
108110
109- const worker = new Worker (
111+ const worker : MyWorker = new Worker (
110112 path . resolve ( path . join ( getModuleDirname ( ) , `./nodeWorkerRunner.mjs` ) ) ,
111113 {
112114 env : {
@@ -138,6 +140,13 @@ function startWorker(input: WorkerRequest) {
138140
139141 workers . set ( input . workerId , worker ) ;
140142
143+ worker . on ( 'message' , ( msg ) => {
144+ worker ?. onMessage ?.( msg ) ;
145+ } ) ;
146+ worker . on ( 'error' , ( err ) => {
147+ worker ?. onError ?.( err ) ;
148+ } ) ;
149+
141150 return worker ;
142151}
143152
0 commit comments