← Files Cecil-IA Labs FFmpegARCHIVED FILE
dist/core/cancellation.js
939 Bytes · Sep 30, 2026 · 23:17 UTC
/**
* Bridge process signals to AbortSignal for CLI entrypoints. Library callers
* can instead pass their own AbortSignal directly to the runners.
*/
export function createProcessSignalController(options = {}) {
const controller = new AbortController();
const signals = options.signals ?? ["SIGINT", "SIGTERM"];
const listeners = new Map();
for (const signal of signals) {
const listener = () => {
if (!controller.signal.aborted) {
controller.abort(new Error(`Received ${signal}`));
}
};
listeners.set(signal, listener);
process.once(signal, listener);
}
return {
signal: controller.signal,
dispose() {
for (const [signal, listener] of listeners) {
process.removeListener(signal, listener);
}
listeners.clear();
},
};
}
//# sourceMappingURL=cancellation.js.mapSHA-256: 9ec0f617b42a89fab6c616491f9cfb356c94ffca879784ec6d3f31e2e027a63c