Skip to content

Commit c7e2830

Browse files
committed
Update node-sys.ts
1 parent b9faa5d commit c7e2830

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

src/sys/node/node-sys.ts

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -667,8 +667,23 @@ export function createNodeSys(c: { process?: any; logger?: Logger } = {}): Compi
667667
'workbox-build': { minVersion: '4.3.1', recommendedVersion: '4.3.1' },
668668
});
669669

670-
prcs.on('SIGINT', runInterruptsCallbacks);
671-
prcs.on('exit', runInterruptsCallbacks);
670+
// In test environments avoid attaching duplicate global process listeners
671+
const isJest = !!process.env.JEST_WORKER_ID;
672+
if (!isJest) {
673+
prcs.on('SIGINT', runInterruptsCallbacks);
674+
prcs.on('exit', runInterruptsCallbacks);
675+
} else {
676+
const sigintHandlers = prcs.listeners('SIGINT');
677+
const exitHandlers = prcs.listeners('exit');
678+
const alreadyHasSigint = sigintHandlers.includes(runInterruptsCallbacks as any);
679+
const alreadyHasExit = exitHandlers.includes(runInterruptsCallbacks as any);
680+
if (!alreadyHasSigint) {
681+
prcs.on('SIGINT', runInterruptsCallbacks);
682+
}
683+
if (!alreadyHasExit) {
684+
prcs.on('exit', runInterruptsCallbacks);
685+
}
686+
}
672687

673688
return sys;
674689
}

0 commit comments

Comments
 (0)