UNPKG

888 BJavaScriptView Raw
1const { initServerProcess } = require('./server-process.js');
2let closeTmr = null;
3
4const sendHandle = (err) => {
5 if (err && err.code === 'ERR_IPC_CHANNEL_CLOSED') {
6 process.exit(0);
7 }
8};
9
10const receiveMessageFromMain = initServerProcess((msg) => {
11 // send message from worker going to main
12 process.send(msg, sendHandle);
13
14 if (msg.serverClosed) {
15 clearTimeout(closeTmr);
16 process.exit(0);
17 }
18});
19
20process.on('message', (msg) => {
21 // receive a message from the main going to worker
22 if (msg && msg.closeServer) {
23 closeTmr = setTimeout(() => {
24 // force exiting if we timeout
25 process.exit(0);
26 }, 5000);
27 }
28
29 receiveMessageFromMain(msg);
30});
31
32process.on('unhandledRejection', (e) => {
33 process.send(
34 {
35 error: { message: 'unhandledRejection: ' + e, stack: typeof e.stack === 'string' ? e.stack : null },
36 },
37 sendHandle
38 );
39});