File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/node_modules/native-run/dist/utils/process.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.onBeforeExit = exports.wait = exports.execFile = exports.exec = void 0;
const cp = require("child_process");
const Debug = require("debug");
const util = require("util");
const fn_1 = require("./fn");
const debug = Debug('native-run:utils:process');
exports.exec = util.promisify(cp.exec);
exports.execFile = util.promisify(cp.execFile);
exports.wait = util.promisify(setTimeout);
const exitQueue = [];
function onBeforeExit(fn) {
exitQueue.push(fn);
}
exports.onBeforeExit = onBeforeExit;
const BEFORE_EXIT_SIGNALS = ['SIGINT', 'SIGTERM', 'SIGHUP', 'SIGBREAK'];
const beforeExitHandlerWrapper = (signal) => (0, fn_1.once)(async () => {
debug('onBeforeExit handler: %s received', signal);
debug('onBeforeExit handler: running %s queued functions', exitQueue.length);
for (const [i, fn] of exitQueue.entries()) {
try {
await fn();
}
catch (e) {
debug('Error from function %d in exit queue: %O', i, e);
}
}
debug('onBeforeExit handler: exiting (exit code %s)', process.exitCode ? process.exitCode : 0);
process.exit();
});
for (const signal of BEFORE_EXIT_SIGNALS) {
process.on(signal, beforeExitHandlerWrapper(signal));
}