UNPKG

metallic-launcher

Version:
40 lines (36 loc) 3.87 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); class LauncherUnhandledRejectionListenerMixin { static mix(superclass) { return class extends superclass { constructor({ unhandledRejectionListeners }) { super(...arguments); this.unhandledRejectionListeners = unhandledRejectionListeners; } async run() { this.unhandledRejectionListeners.listen((reason, promise) => { promise.catch(err => { if (this.logger) { this.logger.error('Unhandled promise rejection:', err); } this.exit(1); }); }); const httpServer = await super.run(); return httpServer; } async close() { this.unhandledRejectionListeners.remove(); await super.close(); } async exit(failure = 0) { this.unhandledRejectionListeners.remove(); await super.exit(failure); } }; } } exports.default = LauncherUnhandledRejectionListenerMixin; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sYXVuY2hlci11bmhhbmRsZWQtcmVqZWN0aW9uLWxpc3RlbmVyLW1peGluLmpzIl0sIm5hbWVzIjpbIkxhdW5jaGVyVW5oYW5kbGVkUmVqZWN0aW9uTGlzdGVuZXJNaXhpbiIsIm1peCIsInN1cGVyY2xhc3MiLCJjb25zdHJ1Y3RvciIsInVuaGFuZGxlZFJlamVjdGlvbkxpc3RlbmVycyIsImFyZ3VtZW50cyIsInJ1biIsImxpc3RlbiIsInJlYXNvbiIsInByb21pc2UiLCJjYXRjaCIsImVyciIsImxvZ2dlciIsImVycm9yIiwiZXhpdCIsImh0dHBTZXJ2ZXIiLCJjbG9zZSIsInJlbW92ZSIsImZhaWx1cmUiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQWUsTUFBTUEsdUNBQU4sQ0FBOEM7QUFDM0QsU0FBT0MsR0FBUCxDQUFZQyxVQUFaLEVBQXdCO0FBQ3RCLFdBQU8sY0FBY0EsVUFBZCxDQUF5QjtBQUM5QkMsa0JBQWEsRUFBRUMsMkJBQUYsRUFBYixFQUE4QztBQUM1QyxjQUFNLEdBQUdDLFNBQVQ7QUFDQSxhQUFLRCwyQkFBTCxHQUFtQ0EsMkJBQW5DO0FBQ0Q7O0FBRUQsWUFBTUUsR0FBTixHQUFhO0FBQ1gsYUFBS0YsMkJBQUwsQ0FBaUNHLE1BQWpDLENBQXdDLENBQUNDLE1BQUQsRUFBU0MsT0FBVCxLQUFxQjtBQUMzREEsa0JBQVFDLEtBQVIsQ0FBY0MsT0FBTztBQUNuQixnQkFBSSxLQUFLQyxNQUFULEVBQWlCO0FBQ2YsbUJBQUtBLE1BQUwsQ0FBWUMsS0FBWixDQUFrQiw4QkFBbEIsRUFBa0RGLEdBQWxEO0FBQ0Q7QUFDRCxpQkFBS0csSUFBTCxDQUFVLENBQVY7QUFDRCxXQUxEO0FBTUQsU0FQRDtBQVFBLGNBQU1DLGFBQWEsTUFBTSxNQUFNVCxHQUFOLEVBQXpCO0FBQ0EsZUFBT1MsVUFBUDtBQUNEOztBQUVELFlBQU1DLEtBQU4sR0FBZTtBQUNiLGFBQUtaLDJCQUFMLENBQWlDYSxNQUFqQztBQUNBLGNBQU0sTUFBTUQsS0FBTixFQUFOO0FBQ0Q7O0FBRUQsWUFBTUYsSUFBTixDQUFZSSxVQUFVLENBQXRCLEVBQXlCO0FBQ3ZCLGFBQUtkLDJCQUFMLENBQWlDYSxNQUFqQztBQUNBLGNBQU0sTUFBTUgsSUFBTixDQUFXSSxPQUFYLENBQU47QUFDRDtBQTNCNkIsS0FBaEM7QUE2QkQ7QUEvQjBEO2tCQUF4Q2xCLHVDIiwiZmlsZSI6ImxhdW5jaGVyLXVuaGFuZGxlZC1yZWplY3Rpb24tbGlzdGVuZXItbWl4aW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBjbGFzcyBMYXVuY2hlclVuaGFuZGxlZFJlamVjdGlvbkxpc3RlbmVyTWl4aW4ge1xuICBzdGF0aWMgbWl4IChzdXBlcmNsYXNzKSB7XG4gICAgcmV0dXJuIGNsYXNzIGV4dGVuZHMgc3VwZXJjbGFzcyB7XG4gICAgICBjb25zdHJ1Y3RvciAoeyB1bmhhbmRsZWRSZWplY3Rpb25MaXN0ZW5lcnMgfSkge1xuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpXG4gICAgICAgIHRoaXMudW5oYW5kbGVkUmVqZWN0aW9uTGlzdGVuZXJzID0gdW5oYW5kbGVkUmVqZWN0aW9uTGlzdGVuZXJzXG4gICAgICB9XG5cbiAgICAgIGFzeW5jIHJ1biAoKSB7XG4gICAgICAgIHRoaXMudW5oYW5kbGVkUmVqZWN0aW9uTGlzdGVuZXJzLmxpc3RlbigocmVhc29uLCBwcm9taXNlKSA9PiB7XG4gICAgICAgICAgcHJvbWlzZS5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMubG9nZ2VyKSB7XG4gICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdVbmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb246JywgZXJyKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5leGl0KDEpXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgaHR0cFNlcnZlciA9IGF3YWl0IHN1cGVyLnJ1bigpXG4gICAgICAgIHJldHVybiBodHRwU2VydmVyXG4gICAgICB9XG5cbiAgICAgIGFzeW5jIGNsb3NlICgpIHtcbiAgICAgICAgdGhpcy51bmhhbmRsZWRSZWplY3Rpb25MaXN0ZW5lcnMucmVtb3ZlKClcbiAgICAgICAgYXdhaXQgc3VwZXIuY2xvc2UoKVxuICAgICAgfVxuXG4gICAgICBhc3luYyBleGl0IChmYWlsdXJlID0gMCkge1xuICAgICAgICB0aGlzLnVuaGFuZGxlZFJlamVjdGlvbkxpc3RlbmVycy5yZW1vdmUoKVxuICAgICAgICBhd2FpdCBzdXBlci5leGl0KGZhaWx1cmUpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=