UNPKG

@alwatr/exit-hook

Version:

A utility for registering exit handlers in Node.js.

41 lines (39 loc) 959 B
/* @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