28 lines
1.0 KiB
JavaScript
28 lines
1.0 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.handleCtrlC = exports.registerCleanupJob = exports.cleanupBeforeQuit = void 0;
|
|
const log_1 = require("./log");
|
|
const cleanupJobs = [];
|
|
const cleanupBeforeQuit = ({ indent, logLevel, }) => {
|
|
log_1.Log.verbose({ indent, logLevel }, 'Cleaning up...');
|
|
const time = Date.now();
|
|
for (const job of cleanupJobs) {
|
|
job.job();
|
|
log_1.Log.verbose({ indent, logLevel }, `Cleanup job "${job.label}" done`);
|
|
}
|
|
log_1.Log.verbose({ indent, logLevel }, `Cleanup done in ${Date.now() - time}ms`);
|
|
};
|
|
exports.cleanupBeforeQuit = cleanupBeforeQuit;
|
|
const registerCleanupJob = (label, job) => {
|
|
cleanupJobs.push({ job, label });
|
|
};
|
|
exports.registerCleanupJob = registerCleanupJob;
|
|
const handleCtrlC = ({ indent, logLevel, }) => {
|
|
process.on('SIGINT', () => {
|
|
log_1.Log.info({ indent: false, logLevel });
|
|
(0, exports.cleanupBeforeQuit)({ indent, logLevel });
|
|
process.exit(0);
|
|
});
|
|
};
|
|
exports.handleCtrlC = handleCtrlC;
|