@alwatr/exit-hook
Version:
A utility for registering exit handlers in Node.js.
41 lines (39 loc) • 959 B
JavaScript
/* @alwatr/exit-hook v5.5.2 */
// src/main.ts
import { packageTracer } from "@alwatr/package-tracer";
__dev_mode__: packageTracer.add("@alwatr/exit-hook", "5.5.2");
var callbacks = null;
var exiting = false;
function exitHook(callback) {
if (callbacks === null) {
registerExitEvents();
callbacks = [];
}
callbacks.push(callback);
}
function onExit_(signal) {
console.log("onExit({signal: %s})", signal);
if (exiting === true || callbacks === null) return;
exiting = true;
for (const callback of callbacks) {
try {
callback();
} catch (error) {
console.error("Error in exit hook callback:", error);
}
}
if (signal === "SIGINT" || signal === "SIGTERM") {
setTimeout(() => {
process.exit(0);
});
}
}
function registerExitEvents() {
process.once("exit", onExit_);
process.once("SIGTERM", onExit_);
process.once("SIGINT", onExit_);
}
export {
exitHook
};
//# sourceMappingURL=main.mjs.map