metallic-launcher
Version:
Service launcher for metallic
45 lines (41 loc) • 3.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
class LauncherLoggerMixin {
static mix(superclass) {
return class extends superclass {
constructor({ logger }) {
super(...arguments);
this.logger = logger;
}
async run() {
try {
await this.logger.run();
const httpServer = await super.run();
this.logger.info('Ready');
return httpServer;
} catch (err) {
this.logger.error('Failed on initialization', err);
throw err;
}
}
async close() {
try {
await super.close();
this.logger.info('Closed');
await this.logger.close();
} catch (err) {
this.logger.error('Failed on close', err);
throw err;
}
}
async exit(failure) {
this.logger.info(`Exit with code ${failure}`);
await super.exit(failure);
}
};
}
}
exports.default = LauncherLoggerMixin;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sYXVuY2hlci1sb2dnZXItbWl4aW4uanMiXSwibmFtZXMiOlsiTGF1bmNoZXJMb2dnZXJNaXhpbiIsIm1peCIsInN1cGVyY2xhc3MiLCJjb25zdHJ1Y3RvciIsImxvZ2dlciIsImFyZ3VtZW50cyIsInJ1biIsImh0dHBTZXJ2ZXIiLCJpbmZvIiwiZXJyIiwiZXJyb3IiLCJjbG9zZSIsImV4aXQiLCJmYWlsdXJlIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFlLE1BQU1BLG1CQUFOLENBQTBCO0FBQ3ZDLFNBQU9DLEdBQVAsQ0FBWUMsVUFBWixFQUF3QjtBQUN0QixXQUFPLGNBQWNBLFVBQWQsQ0FBeUI7QUFDOUJDLGtCQUFhLEVBQUVDLE1BQUYsRUFBYixFQUF5QjtBQUN2QixjQUFNLEdBQUdDLFNBQVQ7QUFDQSxhQUFLRCxNQUFMLEdBQWNBLE1BQWQ7QUFDRDs7QUFFRCxZQUFNRSxHQUFOLEdBQWE7QUFDWCxZQUFJO0FBQ0YsZ0JBQU0sS0FBS0YsTUFBTCxDQUFZRSxHQUFaLEVBQU47QUFDQSxnQkFBTUMsYUFBYSxNQUFNLE1BQU1ELEdBQU4sRUFBekI7QUFDQSxlQUFLRixNQUFMLENBQVlJLElBQVosQ0FBaUIsT0FBakI7QUFDQSxpQkFBT0QsVUFBUDtBQUNELFNBTEQsQ0FLRSxPQUFPRSxHQUFQLEVBQVk7QUFDWixlQUFLTCxNQUFMLENBQVlNLEtBQVosQ0FBa0IsMEJBQWxCLEVBQThDRCxHQUE5QztBQUNBLGdCQUFNQSxHQUFOO0FBQ0Q7QUFDRjs7QUFFRCxZQUFNRSxLQUFOLEdBQWU7QUFDYixZQUFJO0FBQ0YsZ0JBQU0sTUFBTUEsS0FBTixFQUFOO0FBQ0EsZUFBS1AsTUFBTCxDQUFZSSxJQUFaLENBQWlCLFFBQWpCO0FBQ0EsZ0JBQU0sS0FBS0osTUFBTCxDQUFZTyxLQUFaLEVBQU47QUFDRCxTQUpELENBSUUsT0FBT0YsR0FBUCxFQUFZO0FBQ1osZUFBS0wsTUFBTCxDQUFZTSxLQUFaLENBQWtCLGlCQUFsQixFQUFxQ0QsR0FBckM7QUFDQSxnQkFBTUEsR0FBTjtBQUNEO0FBQ0Y7O0FBRUQsWUFBTUcsSUFBTixDQUFZQyxPQUFaLEVBQXFCO0FBQ25CLGFBQUtULE1BQUwsQ0FBWUksSUFBWixDQUFrQixrQkFBaUJLLE9BQVEsRUFBM0M7QUFDQSxjQUFNLE1BQU1ELElBQU4sQ0FBV0MsT0FBWCxDQUFOO0FBQ0Q7QUFoQzZCLEtBQWhDO0FBa0NEO0FBcENzQztrQkFBcEJiLG1CIiwiZmlsZSI6ImxhdW5jaGVyLWxvZ2dlci1taXhpbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIExhdW5jaGVyTG9nZ2VyTWl4aW4ge1xuICBzdGF0aWMgbWl4IChzdXBlcmNsYXNzKSB7XG4gICAgcmV0dXJuIGNsYXNzIGV4dGVuZHMgc3VwZXJjbGFzcyB7XG4gICAgICBjb25zdHJ1Y3RvciAoeyBsb2dnZXIgfSkge1xuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpXG4gICAgICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyXG4gICAgICB9XG5cbiAgICAgIGFzeW5jIHJ1biAoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5sb2dnZXIucnVuKClcbiAgICAgICAgICBjb25zdCBodHRwU2VydmVyID0gYXdhaXQgc3VwZXIucnVuKClcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKCdSZWFkeScpXG4gICAgICAgICAgcmV0dXJuIGh0dHBTZXJ2ZXJcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0ZhaWxlZCBvbiBpbml0aWFsaXphdGlvbicsIGVycilcbiAgICAgICAgICB0aHJvdyBlcnJcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhc3luYyBjbG9zZSAoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgc3VwZXIuY2xvc2UoKVxuICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0Nsb3NlZCcpXG4gICAgICAgICAgYXdhaXQgdGhpcy5sb2dnZXIuY2xvc2UoKVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignRmFpbGVkIG9uIGNsb3NlJywgZXJyKVxuICAgICAgICAgIHRocm93IGVyclxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGFzeW5jIGV4aXQgKGZhaWx1cmUpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhgRXhpdCB3aXRoIGNvZGUgJHtmYWlsdXJlfWApXG4gICAgICAgIGF3YWl0IHN1cGVyLmV4aXQoZmFpbHVyZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==