aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/concurrently/dist/src/flow-control/kill-on-signal.js
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2025-06-28 17:26:46 -0700
committerPinapelz <yukais@pinapelz.com>2025-06-28 17:43:56 -0700
commite4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 (patch)
tree06284a538a6008eca75051399e47db4e5d50301c /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.js36
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;
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage