@rxstack/core
Version:
RxStackCore
94 lines • 2.64 kB
JavaScript
;
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