@tsed/common
Version:
A TypeScript Framework on top of Express
201 lines • 5.69 kB
JavaScript
"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