index.js
444 Bytes
'use strict';
var cbs = [];
var called = false;
function exit(exit, signal) {
if (called) {
return;
}
called = true;
cbs.forEach(function (el) {
el();
});
if (exit === true) {
process.exit(128 + signal);
}
};
module.exports = function (cb) {
cbs.push(cb);
if (cbs.length === 1) {
process.once('exit', exit);
process.once('SIGINT', exit.bind(null, true, 2));
process.once('SIGTERM', exit.bind(null, true, 15));
}
};