metallic-launcher
Version:
Service launcher for metallic
33 lines (29 loc) • 2.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
class LauncherExitSignalListenerMixin {
static mix(superclass) {
return class extends superclass {
constructor({ exitSignalListeners }) {
super(...arguments);
this.exitSignalListeners = exitSignalListeners;
}
async run() {
this.exitSignalListeners.listen(() => this.exit(0));
const httpServer = await super.run();
return httpServer;
}
async close() {
this.exitSignalListeners.remove();
await super.close();
}
async exit(failure = 0) {
this.exitSignalListeners.remove();
await super.exit(failure);
}
};
}
}
exports.default = LauncherExitSignalListenerMixin;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sYXVuY2hlci1leGl0LXNpZ25hbC1saXN0ZW5lci1taXhpbi5qcyJdLCJuYW1lcyI6WyJMYXVuY2hlckV4aXRTaWduYWxMaXN0ZW5lck1peGluIiwibWl4Iiwic3VwZXJjbGFzcyIsImNvbnN0cnVjdG9yIiwiZXhpdFNpZ25hbExpc3RlbmVycyIsImFyZ3VtZW50cyIsInJ1biIsImxpc3RlbiIsImV4aXQiLCJodHRwU2VydmVyIiwiY2xvc2UiLCJyZW1vdmUiLCJmYWlsdXJlIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFlLE1BQU1BLCtCQUFOLENBQXNDO0FBQ25ELFNBQU9DLEdBQVAsQ0FBWUMsVUFBWixFQUF3QjtBQUN0QixXQUFPLGNBQWNBLFVBQWQsQ0FBeUI7QUFDOUJDLGtCQUFhLEVBQUVDLG1CQUFGLEVBQWIsRUFBc0M7QUFDcEMsY0FBTSxHQUFHQyxTQUFUO0FBQ0EsYUFBS0QsbUJBQUwsR0FBMkJBLG1CQUEzQjtBQUNEOztBQUVELFlBQU1FLEdBQU4sR0FBYTtBQUNYLGFBQUtGLG1CQUFMLENBQXlCRyxNQUF6QixDQUFnQyxNQUFNLEtBQUtDLElBQUwsQ0FBVSxDQUFWLENBQXRDO0FBQ0EsY0FBTUMsYUFBYSxNQUFNLE1BQU1ILEdBQU4sRUFBekI7QUFDQSxlQUFPRyxVQUFQO0FBQ0Q7O0FBRUQsWUFBTUMsS0FBTixHQUFlO0FBQ2IsYUFBS04sbUJBQUwsQ0FBeUJPLE1BQXpCO0FBQ0EsY0FBTSxNQUFNRCxLQUFOLEVBQU47QUFDRDs7QUFFRCxZQUFNRixJQUFOLENBQVlJLFVBQVUsQ0FBdEIsRUFBeUI7QUFDdkIsYUFBS1IsbUJBQUwsQ0FBeUJPLE1BQXpCO0FBQ0EsY0FBTSxNQUFNSCxJQUFOLENBQVdJLE9BQVgsQ0FBTjtBQUNEO0FBcEI2QixLQUFoQztBQXNCRDtBQXhCa0Q7a0JBQWhDWiwrQiIsImZpbGUiOiJsYXVuY2hlci1leGl0LXNpZ25hbC1saXN0ZW5lci1taXhpbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIExhdW5jaGVyRXhpdFNpZ25hbExpc3RlbmVyTWl4aW4ge1xuICBzdGF0aWMgbWl4IChzdXBlcmNsYXNzKSB7XG4gICAgcmV0dXJuIGNsYXNzIGV4dGVuZHMgc3VwZXJjbGFzcyB7XG4gICAgICBjb25zdHJ1Y3RvciAoeyBleGl0U2lnbmFsTGlzdGVuZXJzIH0pIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKVxuICAgICAgICB0aGlzLmV4aXRTaWduYWxMaXN0ZW5lcnMgPSBleGl0U2lnbmFsTGlzdGVuZXJzXG4gICAgICB9XG5cbiAgICAgIGFzeW5jIHJ1biAoKSB7XG4gICAgICAgIHRoaXMuZXhpdFNpZ25hbExpc3RlbmVycy5saXN0ZW4oKCkgPT4gdGhpcy5leGl0KDApKVxuICAgICAgICBjb25zdCBodHRwU2VydmVyID0gYXdhaXQgc3VwZXIucnVuKClcbiAgICAgICAgcmV0dXJuIGh0dHBTZXJ2ZXJcbiAgICAgIH1cblxuICAgICAgYXN5bmMgY2xvc2UgKCkge1xuICAgICAgICB0aGlzLmV4aXRTaWduYWxMaXN0ZW5lcnMucmVtb3ZlKClcbiAgICAgICAgYXdhaXQgc3VwZXIuY2xvc2UoKVxuICAgICAgfVxuXG4gICAgICBhc3luYyBleGl0IChmYWlsdXJlID0gMCkge1xuICAgICAgICB0aGlzLmV4aXRTaWduYWxMaXN0ZW5lcnMucmVtb3ZlKClcbiAgICAgICAgYXdhaXQgc3VwZXIuZXhpdChmYWlsdXJlKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19