UNPKG

@rxstack/core

Version:
94 lines 2.64 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AbstractServer = void 0; const winston = require('winston'); /** * Base class for servers */ class AbstractServer { /** * Sets injector * * @param {Injector} injector */ setInjector(injector) { this.injector = injector; } /** * Gets injector * * @returns {Injector} */ getInjector() { return this.injector; } /** * Kicks off the server */ start(routeDefinitions) { return __awaiter(this, void 0, void 0, function* () { yield this.configure(routeDefinitions); yield this.startEngine(); }); } /** * Retrieve the base instance of Server * @returns {HttpServer} */ // @ts-ignore getHttpServer() { return this.httpServer; } /** * Retrieve underlying engine * * @returns {any} */ getEngine() { return this.engine; } /** * Kicks off the server using the specific underlying engine */ startEngine() { return __awaiter(this, void 0, void 0, function* () { this.getHttpServer().listen(this.port, this.host, () => this.logMessage('Starting')); }); } /** * Stops underlying engine * * @returns {Promise<void>} */ stopEngine() { return __awaiter(this, void 0, void 0, function* () { this.getHttpServer().close(() => this.logMessage('Closing')); }); } /** * Get the host name (for logging) * @returns {string} */ getHost() { return `http://${this.host}:${this.port}`; } /** * Logs server message * * @param {string} message */ logMessage(message) { winston.debug(`${message} ${this.getHost()}`); } } exports.AbstractServer = AbstractServer; //# sourceMappingURL=abstract-server.js.map