UNPKG

metallic-app

Version:

Koa application for CARTO services

52 lines (41 loc) 4.12 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _metallicInterfaces = require('metallic-interfaces'); var _metallicErrors = require('metallic-errors'); class HttpServer extends _metallicInterfaces.RunnerInterface { constructor({ app, port }) { super(); this.app = app; this.port = port; this.httpServer = null; } get provider() { return this.app.provider; } run() { return new Promise((resolve, reject) => { this.httpServer = this.app.listen(this.port); if (!this.httpServer) { return reject(new _metallicErrors.NotReadyError('Server')); } this.httpServer.once('error', err => reject(err)); this.httpServer.once('listening', () => { resolve(this.httpServer); }); }); } close() { return new Promise((resolve, reject) => { if (!this.httpServer) { return resolve(); } this.httpServer.once('close', () => resolve()); this.httpServer.once('error', err => reject(err)); this.httpServer.close(); }); } } exports.default = HttpServer; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9odHRwLXNlcnZlci5qcyJdLCJuYW1lcyI6WyJIdHRwU2VydmVyIiwiY29uc3RydWN0b3IiLCJhcHAiLCJwb3J0IiwiaHR0cFNlcnZlciIsInByb3ZpZGVyIiwicnVuIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJsaXN0ZW4iLCJvbmNlIiwiZXJyIiwiY2xvc2UiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUVlLE1BQU1BLFVBQU4sNkNBQXlDO0FBQ3REQyxjQUFhLEVBQUVDLEdBQUYsRUFBT0MsSUFBUCxFQUFiLEVBQTRCO0FBQzFCO0FBQ0EsU0FBS0QsR0FBTCxHQUFXQSxHQUFYO0FBQ0EsU0FBS0MsSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0MsVUFBTCxHQUFrQixJQUFsQjtBQUNEOztBQUVELE1BQUlDLFFBQUosR0FBZ0I7QUFDZCxXQUFPLEtBQUtILEdBQUwsQ0FBU0csUUFBaEI7QUFDRDs7QUFFREMsUUFBTztBQUNMLFdBQU8sSUFBSUMsT0FBSixDQUFZLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUFxQjtBQUN0QyxXQUFLTCxVQUFMLEdBQWtCLEtBQUtGLEdBQUwsQ0FBU1EsTUFBVCxDQUFnQixLQUFLUCxJQUFyQixDQUFsQjs7QUFFQSxVQUFJLENBQUMsS0FBS0MsVUFBVixFQUFzQjtBQUNwQixlQUFPSyxPQUFPLGtDQUFrQixRQUFsQixDQUFQLENBQVA7QUFDRDs7QUFFRCxXQUFLTCxVQUFMLENBQWdCTyxJQUFoQixDQUFxQixPQUFyQixFQUE4QkMsT0FBT0gsT0FBT0csR0FBUCxDQUFyQzs7QUFFQSxXQUFLUixVQUFMLENBQWdCTyxJQUFoQixDQUFxQixXQUFyQixFQUFrQyxNQUFNO0FBQ3RDSCxnQkFBUSxLQUFLSixVQUFiO0FBQ0QsT0FGRDtBQUdELEtBWk0sQ0FBUDtBQWFEOztBQUVEUyxVQUFTO0FBQ1AsV0FBTyxJQUFJTixPQUFKLENBQVksQ0FBQ0MsT0FBRCxFQUFVQyxNQUFWLEtBQXFCO0FBQ3RDLFVBQUksQ0FBQyxLQUFLTCxVQUFWLEVBQXNCO0FBQ3BCLGVBQU9JLFNBQVA7QUFDRDs7QUFFRCxXQUFLSixVQUFMLENBQWdCTyxJQUFoQixDQUFxQixPQUFyQixFQUE4QixNQUFNSCxTQUFwQztBQUNBLFdBQUtKLFVBQUwsQ0FBZ0JPLElBQWhCLENBQXFCLE9BQXJCLEVBQThCQyxPQUFPSCxPQUFPRyxHQUFQLENBQXJDO0FBQ0EsV0FBS1IsVUFBTCxDQUFnQlMsS0FBaEI7QUFDRCxLQVJNLENBQVA7QUFTRDtBQXRDcUQ7a0JBQW5DYixVIiwiZmlsZSI6Imh0dHAtc2VydmVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUnVubmVySW50ZXJmYWNlIH0gZnJvbSAnbWV0YWxsaWMtaW50ZXJmYWNlcydcbmltcG9ydCB7IE5vdFJlYWR5RXJyb3IgfSBmcm9tICdtZXRhbGxpYy1lcnJvcnMnXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEh0dHBTZXJ2ZXIgZXh0ZW5kcyBSdW5uZXJJbnRlcmZhY2Uge1xuICBjb25zdHJ1Y3RvciAoeyBhcHAsIHBvcnQgfSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmFwcCA9IGFwcFxuICAgIHRoaXMucG9ydCA9IHBvcnRcbiAgICB0aGlzLmh0dHBTZXJ2ZXIgPSBudWxsXG4gIH1cblxuICBnZXQgcHJvdmlkZXIgKCkge1xuICAgIHJldHVybiB0aGlzLmFwcC5wcm92aWRlclxuICB9XG5cbiAgcnVuICgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5odHRwU2VydmVyID0gdGhpcy5hcHAubGlzdGVuKHRoaXMucG9ydClcblxuICAgICAgaWYgKCF0aGlzLmh0dHBTZXJ2ZXIpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChuZXcgTm90UmVhZHlFcnJvcignU2VydmVyJykpXG4gICAgICB9XG5cbiAgICAgIHRoaXMuaHR0cFNlcnZlci5vbmNlKCdlcnJvcicsIGVyciA9PiByZWplY3QoZXJyKSlcblxuICAgICAgdGhpcy5odHRwU2VydmVyLm9uY2UoJ2xpc3RlbmluZycsICgpID0+IHtcbiAgICAgICAgcmVzb2x2ZSh0aGlzLmh0dHBTZXJ2ZXIpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICBjbG9zZSAoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5odHRwU2VydmVyKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlKClcbiAgICAgIH1cblxuICAgICAgdGhpcy5odHRwU2VydmVyLm9uY2UoJ2Nsb3NlJywgKCkgPT4gcmVzb2x2ZSgpKVxuICAgICAgdGhpcy5odHRwU2VydmVyLm9uY2UoJ2Vycm9yJywgZXJyID0+IHJlamVjdChlcnIpKVxuICAgICAgdGhpcy5odHRwU2VydmVyLmNsb3NlKClcbiAgICB9KVxuICB9XG59XG4iXX0=