@webfaas/webfaas-core
Version:
WebFaaS Framework - Core
50 lines • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EventManager = exports.EventManagerEnum = void 0;
const events_1 = require("events");
var EventManagerEnum;
(function (EventManagerEnum) {
EventManagerEnum["PROCESS_MODULE_COMPILED_TO_CACHE"] = "PROCESS_MODULE_COMPILED_TO_CACHE";
EventManagerEnum["CONFIG_RELOAD"] = "CONFIG_RELOAD";
EventManagerEnum["QUIT"] = "QUIT";
})(EventManagerEnum = exports.EventManagerEnum || (exports.EventManagerEnum = {}));
const listSIG = [
"SIGHUP",
"SIGINT",
"SIGQUIT",
"SIGILL",
"SIGTRAP",
"SIGABRT",
"SIGBUS",
"SIGFPE",
"SIGUSR1",
"SIGSEGV",
"SIGUSR2",
"SIGTERM"
];
const event = new events_1.EventEmitter();
event.setMaxListeners(200);
/**
* Event Manager
*/
class EventManager {
static addListener(type, cb) {
event.addListener(type.toString(), cb);
}
static emit(type, ...args) {
event.emit(type.toString(), ...args);
}
}
exports.EventManager = EventManager;
listSIG.forEach(function (sig) {
let processAny = process;
processAny.on(sig, function () {
EventManager.emit(EventManagerEnum.QUIT, sig);
console.log("ABORTING...");
setInterval(() => {
console.log("ABORTED!!!");
process.exit(1);
}, 1000);
});
});
//# sourceMappingURL=EventManager.js.map