diff options
| author | Pinapelz <yukais@pinapelz.com> | 2025-06-28 17:26:46 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2025-06-28 17:43:56 -0700 |
| commit | e4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 (patch) | |
| tree | 06284a538a6008eca75051399e47db4e5d50301c /node_modules/concurrently/dist/src/flow-control/kill-on-signal.js | |
initial commit: scaffolding
Diffstat (limited to 'node_modules/concurrently/dist/src/flow-control/kill-on-signal.js')
| -rw-r--r-- | node_modules/concurrently/dist/src/flow-control/kill-on-signal.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/node_modules/concurrently/dist/src/flow-control/kill-on-signal.js b/node_modules/concurrently/dist/src/flow-control/kill-on-signal.js new file mode 100644 index 0000000..716a9bf --- /dev/null +++ b/node_modules/concurrently/dist/src/flow-control/kill-on-signal.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.KillOnSignal = void 0; +const operators_1 = require("rxjs/operators"); +/** + * Watches the main concurrently process for signals and sends the same signal down to each spawned + * command. + */ +class KillOnSignal { + constructor({ process }) { + this.process = process; + } + handle(commands) { + let caughtSignal; + ['SIGINT', 'SIGTERM', 'SIGHUP'].forEach((signal) => { + this.process.on(signal, () => { + caughtSignal = signal; + commands.forEach((command) => command.kill(signal)); + }); + }); + return { + commands: commands.map((command) => { + const closeStream = command.close.pipe((0, operators_1.map)((exitInfo) => { + const exitCode = caughtSignal === 'SIGINT' ? 0 : exitInfo.exitCode; + return { ...exitInfo, exitCode }; + })); + return new Proxy(command, { + get(target, prop) { + return prop === 'close' ? closeStream : target[prop]; + }, + }); + }), + }; + } +} +exports.KillOnSignal = KillOnSignal; |
