UNPKG

metallic-launcher

Version:
57 lines (40 loc) 3.56 kB
'use strict'; 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=