UNPKG

@tsed/common

Version:
201 lines 5.69 kB
"use strict"; var PlatformConfiguration_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.PlatformConfiguration = void 0; const tslib_1 = require("tslib"); const core_1 = require("@tsed/core"); const di_1 = require("@tsed/di"); const logger_1 = require("@tsed/logger"); const rootDir = process.cwd(); /** * `PlatformConfiguration` contains all information about your Server configuration. */ let PlatformConfiguration = PlatformConfiguration_1 = class PlatformConfiguration extends di_1.DIConfiguration { constructor() { super({ rootDir, env: process.env.NODE_ENV || core_1.Env.DEV, httpPort: 8080, httpsPort: false, scopes: { [di_1.ProviderType.CONTROLLER]: di_1.ProviderScope.SINGLETON }, logger: { debug: false, level: "info", logRequest: true, jsonIndentation: process.env.NODE_ENV === core_1.Env.PROD ? 0 : 2 }, errors: { headerName: "errors" }, mount: { "/rest": "${rootDir}/controllers/**/*.ts" }, exclude: ["**/*.spec.ts", "**/*.spec.js"], componentsScan: ["${rootDir}/mvc/**/*.ts", "${rootDir}/services/**/*.ts", "${rootDir}/middlewares/**/*.ts"] }); } get version() { return this.getRaw("version"); } set version(v) { this.setRaw("version", v); } get rootDir() { return this.getRaw("rootDir"); } set rootDir(value) { this.setRaw("rootDir", value); } get port() { return this.httpPort; } set port(value) { this.httpPort = value; } get httpsOptions() { return this.getRaw("httpsOptions"); } set httpsOptions(value) { this.setRaw("httpsOptions", value); } get httpPort() { return this.getRaw("httpPort"); } set httpPort(value) { this.setRaw("httpPort", value); } get httpsPort() { return this.getRaw("httpsPort"); } set httpsPort(value) { this.setRaw("httpsPort", value); } get env() { return this.getRaw("env"); } set env(value) { this.setRaw("env", value); } get mount() { return this.get("mount"); } set mount(value) { this.setRaw("mount", value); } get componentsScan() { return this.resolve(this.getRaw("componentsScan")); } set componentsScan(value) { this.setRaw("componentsScan", value); } get statics() { return this.getRaw("statics") || this.getRaw("serveStatic") || {}; } set statics(value) { this.setRaw("statics", value); } get acceptMimes() { return this.getRaw("acceptMimes"); } set acceptMimes(value) { this.setRaw("acceptMimes", value || []); } get debug() { return this.logger.level === "debug"; } set debug(debug) { this.logger = { ...this.logger, level: debug ? "debug" : "info" }; } get converter() { return this.get("converter") || {}; } set converter(options) { this.setRaw("converter", options); } get logger() { return this.get("logger"); } set logger(value) { const logger = { ...this.logger, ...value }; logger.debug = logger.level === "debug"; this.setRaw("logger", logger); this.setRaw("debug", logger.debug); if (logger.format) { logger_1.$log.appenders.set("stdout", { type: "stdout", levels: ["info", "debug"], layout: { type: "pattern", pattern: logger.format } }); logger_1.$log.appenders.set("stderr", { levels: ["trace", "fatal", "error", "warn"], type: "stderr", layout: { type: "pattern", pattern: logger.format } }); } } get exclude() { return this.get("exclude"); } set exclude(exclude) { this.setRaw("exclude", exclude); } /** * * @param addressPort * @returns {{address: string, port: number}} */ static buildAddressAndPort(addressPort) { let address = "0.0.0.0"; let port = addressPort; if (typeof addressPort === "string" && addressPort.indexOf(":") > -1) { [address, port] = addressPort.split(":"); port = +port; } return { address, port: port }; } /** * * @returns {string|number} */ getHttpPort() { return PlatformConfiguration_1.buildAddressAndPort(this.getRaw("httpPort")); } /** * * @param settings */ setHttpPort(settings) { this.setRaw("httpPort", `${settings.address}:${settings.port}`); } /** * * @returns {string|number} */ getHttpsPort() { return PlatformConfiguration_1.buildAddressAndPort(this.getRaw("httpsPort")); } /** * * @param settings */ setHttpsPort(settings) { this.setRaw("httpsPort", `${settings.address}:${settings.port}`); } }; PlatformConfiguration = PlatformConfiguration_1 = tslib_1.__decorate([ di_1.Injectable({ scope: di_1.ProviderScope.SINGLETON, global: true }), tslib_1.__metadata("design:paramtypes", []) ], PlatformConfiguration); exports.PlatformConfiguration = PlatformConfiguration; //# sourceMappingURL=PlatformConfiguration.js.map