UNPKG

@nodearch/express

Version:
57 lines 2.45 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; import { Logger, Service } from '@nodearch/core'; import { ExpressConfig } from './express.config.js'; import http from 'node:http'; import https from 'node:https'; import { ExpressApp } from './express-app.js'; let ExpressServer = class ExpressServer { constructor(expressConfig, expressApp, logger) { this.expressConfig = expressConfig; this.expressApp = expressApp; this.logger = logger; this.httpServer = this.createServer(); } async start() { await new Promise((resolve, reject) => { this.httpServer.listen(this.expressConfig.port, this.expressConfig.hostname); this.httpServer.on('error', err => { reject(err); }); this.httpServer.on('listening', () => { this.logger.info(`Express: Server running at: ${this.expressConfig.hostname}:${this.expressConfig.port}`); resolve(0); }); }); } getServer() { return this.httpServer; } createServer() { let httpServer; const expressApp = this.expressApp.create(); if (this.expressConfig.https) { httpServer = https.createServer(this.expressConfig.https, expressApp); } else if (this.expressConfig.http) { httpServer = http.createServer(this.expressConfig.http, expressApp); } else { httpServer = http.createServer(expressApp); } return httpServer; } }; ExpressServer = __decorate([ Service(), __metadata("design:paramtypes", [ExpressConfig, ExpressApp, Logger]) ], ExpressServer); export { ExpressServer }; //# sourceMappingURL=express-server.js.map