@hapiness/core
Version:
Project to have a HapiJS (https://hapijs.com/) based framework to create easier NodeJS back-end with some awesome features
36 lines • 1.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const rxjs_1 = require("rxjs");
const _1 = require(".");
class ShutdownUtils {
constructor() {
this.events$ = new rxjs_1.Subject();
process.once('SIGTERM', () => {
this.events$.next('SIGTERM');
});
process.once('SIGINT', () => {
this.events$.next('SIGINT');
});
}
/**
* Shutdown all extensions
*
* @param {ExtensionShutdown[]} items
* @returns Observable
*/
shutdown(items) {
return rxjs_1.Observable
.from(items)
.filter(_ => _.priority === _1.ExtensionShutdownPriority.IMPORTANT)
.flatMap(_ => _.resolver)
.toArray()
.concatMap(_ => rxjs_1.Observable
.from(items)
.filter(__ => __.priority === _1.ExtensionShutdownPriority.NORMAL)
.flatMap(__ => __.resolver)
.toArray())
.map(_ => true);
}
}
exports.ShutdownUtils = ShutdownUtils;
//# sourceMappingURL=shutdown.js.map