metallic-launcher
Version:
Service launcher for metallic
57 lines (40 loc) • 3.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _role = require('../role');
var _role2 = _interopRequireDefault(_role);
var _clusterInterface = require('../cluster-interface');
var _clusterInterface2 = _interopRequireDefault(_clusterInterface);
var _cluster = require('cluster');
var _cluster2 = _interopRequireDefault(_cluster);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class Server extends _clusterInterface2.default {
constructor({ httpServer }) {
super();
this.httpServer = httpServer;
}
static is(clusterOn) {
return _role2.default.isServer(clusterOn);
}
get role() {
return _role.SERVER;
}
async run() {
const httpServer = await this.httpServer.run();
const httpServerInfo = { [process.pid]: httpServer.address() };
if (_cluster2.default.isWorker) {
process.send(httpServerInfo);
}
return httpServerInfo;
}
async close() {
await this.httpServer.close();
}
async exit(failure = 0) {
await this.httpServer.close();
process.exit(failure);
}
}
exports.default = Server;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbHVzdGVyL3NlcnZlci9zZXJ2ZXIuanMiXSwibmFtZXMiOlsiU2VydmVyIiwiY29uc3RydWN0b3IiLCJodHRwU2VydmVyIiwiaXMiLCJjbHVzdGVyT24iLCJpc1NlcnZlciIsInJvbGUiLCJydW4iLCJodHRwU2VydmVySW5mbyIsInByb2Nlc3MiLCJwaWQiLCJhZGRyZXNzIiwiaXNXb3JrZXIiLCJzZW5kIiwiY2xvc2UiLCJleGl0IiwiZmFpbHVyZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFZSxNQUFNQSxNQUFOLG9DQUFzQztBQUNuREMsY0FBYSxFQUFFQyxVQUFGLEVBQWIsRUFBNkI7QUFDM0I7QUFDQSxTQUFLQSxVQUFMLEdBQWtCQSxVQUFsQjtBQUNEOztBQUVELFNBQU9DLEVBQVAsQ0FBV0MsU0FBWCxFQUFzQjtBQUNwQixXQUFPLGVBQUtDLFFBQUwsQ0FBY0QsU0FBZCxDQUFQO0FBQ0Q7O0FBRUQsTUFBSUUsSUFBSixHQUFZO0FBQ1Y7QUFDRDs7QUFFRCxRQUFNQyxHQUFOLEdBQWE7QUFDWCxVQUFNTCxhQUFhLE1BQU0sS0FBS0EsVUFBTCxDQUFnQkssR0FBaEIsRUFBekI7O0FBRUEsVUFBTUMsaUJBQWlCLEVBQUUsQ0FBQ0MsUUFBUUMsR0FBVCxHQUFlUixXQUFXUyxPQUFYLEVBQWpCLEVBQXZCOztBQUVBLFFBQUksa0JBQVFDLFFBQVosRUFBc0I7QUFDcEJILGNBQVFJLElBQVIsQ0FBYUwsY0FBYjtBQUNEOztBQUVELFdBQU9BLGNBQVA7QUFDRDs7QUFFRCxRQUFNTSxLQUFOLEdBQWU7QUFDYixVQUFNLEtBQUtaLFVBQUwsQ0FBZ0JZLEtBQWhCLEVBQU47QUFDRDs7QUFFRCxRQUFNQyxJQUFOLENBQVlDLFVBQVUsQ0FBdEIsRUFBeUI7QUFDdkIsVUFBTSxLQUFLZCxVQUFMLENBQWdCWSxLQUFoQixFQUFOO0FBQ0FMLFlBQVFNLElBQVIsQ0FBYUMsT0FBYjtBQUNEO0FBakNrRDtrQkFBaENoQixNIiwiZmlsZSI6InNlcnZlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSb2xlLCB7IFNFUlZFUiB9IGZyb20gJy4uL3JvbGUnXG5pbXBvcnQgQ2x1c3RlckludGVyZmFjZSBmcm9tICcuLi9jbHVzdGVyLWludGVyZmFjZSdcbmltcG9ydCBjbHVzdGVyIGZyb20gJ2NsdXN0ZXInXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNlcnZlciBleHRlbmRzIENsdXN0ZXJJbnRlcmZhY2Uge1xuICBjb25zdHJ1Y3RvciAoeyBodHRwU2VydmVyIH0pIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5odHRwU2VydmVyID0gaHR0cFNlcnZlclxuICB9XG5cbiAgc3RhdGljIGlzIChjbHVzdGVyT24pIHtcbiAgICByZXR1cm4gUm9sZS5pc1NlcnZlcihjbHVzdGVyT24pXG4gIH1cblxuICBnZXQgcm9sZSAoKSB7XG4gICAgcmV0dXJuIFNFUlZFUlxuICB9XG5cbiAgYXN5bmMgcnVuICgpIHtcbiAgICBjb25zdCBodHRwU2VydmVyID0gYXdhaXQgdGhpcy5odHRwU2VydmVyLnJ1bigpXG5cbiAgICBjb25zdCBodHRwU2VydmVySW5mbyA9IHsgW3Byb2Nlc3MucGlkXTogaHR0cFNlcnZlci5hZGRyZXNzKCkgfVxuXG4gICAgaWYgKGNsdXN0ZXIuaXNXb3JrZXIpIHtcbiAgICAgIHByb2Nlc3Muc2VuZChodHRwU2VydmVySW5mbylcbiAgICB9XG5cbiAgICByZXR1cm4gaHR0cFNlcnZlckluZm9cbiAgfVxuXG4gIGFzeW5jIGNsb3NlICgpIHtcbiAgICBhd2FpdCB0aGlzLmh0dHBTZXJ2ZXIuY2xvc2UoKVxuICB9XG5cbiAgYXN5bmMgZXhpdCAoZmFpbHVyZSA9IDApIHtcbiAgICBhd2FpdCB0aGlzLmh0dHBTZXJ2ZXIuY2xvc2UoKVxuICAgIHByb2Nlc3MuZXhpdChmYWlsdXJlKVxuICB9XG59XG4iXX0=