File "signal-manager.js"
Full Path: /home/attunedd/public_html/byp/izo/con7ext_sym404/rintoar.txt/usr/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/signal-manager.js
File size: 1.19 KB
MIME-type: text/plain
Charset: utf-8
const runningProcs = new Set()
let handlersInstalled = false
// NOTE: these signals aren't actually forwarded anywhere. they're trapped and
// ignored until all child processes have exited. in our next breaking change
// we should rename this
const forwardedSignals = [
'SIGINT',
'SIGTERM',
]
// no-op, this is so receiving the signal doesn't cause us to exit immediately
// instead, we exit after all children have exited when we re-send the signal
// to ourselves. see the catch handler at the bottom of run-script-pkg.js
// istanbul ignore next - this function does nothing
const handleSignal = () => {}
const setupListeners = () => {
for (const signal of forwardedSignals) {
process.on(signal, handleSignal)
}
handlersInstalled = true
}
const cleanupListeners = () => {
if (runningProcs.size === 0) {
for (const signal of forwardedSignals) {
process.removeListener(signal, handleSignal)
}
handlersInstalled = false
}
}
const add = proc => {
runningProcs.add(proc)
if (!handlersInstalled) {
setupListeners()
}
proc.once('exit', () => {
runningProcs.delete(proc)
cleanupListeners()
})
}
module.exports = {
add,
handleSignal,
forwardedSignals,
}