@ts-ioc/platform-server-bootstrap
Version:
tsioc is AOP, Ioc container, via typescript decorator
98 lines (96 loc) • 3.15 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const core_1 = require("@ts-ioc/core");
const bootstrap_1 = require("@ts-ioc/bootstrap");
const path = require("path");
const platform_server_1 = require("@ts-ioc/platform-server");
let ConfigureFileLoader = class ConfigureFileLoader {
constructor(baseURL, container) {
this.baseURL = baseURL;
this.container = container;
}
load(uri) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const fs = require('fs');
if (uri) {
if (fs.existsSync(uri)) {
return require(uri);
}
else if (fs.existsSync(path.join(this.baseURL, uri))) {
return require(path.join(this.baseURL, uri));
}
else {
console.log(`config file: ${uri} not exists.`);
return null;
}
}
else {
let cfgmodeles;
let cfgpath = path.join(this.baseURL, './config');
['.js', '.ts', '.json'].forEach(ext => {
if (cfgmodeles) {
return false;
}
if (fs.existsSync(cfgpath + ext)) {
cfgmodeles = require(cfgpath + ext);
return false;
}
return true;
});
return cfgmodeles;
}
});
}
static getClassAnnations() {
return { "name": "ConfigureFileLoader", "params": { "constructor": ["baseURL", "container"], "load": ["uri"] } };
}
};
ConfigureFileLoader = tslib_1.__decorate([
core_1.Injectable(bootstrap_1.ConfigureLoaderToken),
tslib_1.__metadata("design:paramtypes", [String, Object])
], ConfigureFileLoader);
exports.ConfigureFileLoader = ConfigureFileLoader;
/**
* server app.
*
* @export
* @template T
* @param {string} [baseURL]
* @returns {IApplicationBuilderServer<T>}
*/
function serverApp(baseURL) {
return new bootstrap_1.ApplicationBuilder(baseURL).use(ServerBootstrapModule);
}
exports.serverApp = serverApp;
let cwd = process.cwd();
let processRoot = path.join(path.dirname(cwd), path.basename(cwd));
/**
* server boot module
*
* @export
* @class ServerBootstrapModule
*/
let ServerBootstrapModule = class ServerBootstrapModule {
static getClassAnnations() {
return { "name": "ServerBootstrapModule", "params": {} };
}
};
ServerBootstrapModule = tslib_1.__decorate([
bootstrap_1.DIModule({
asRoot: true,
imports: [
platform_server_1.ServerModule,
ConfigureFileLoader
],
providers: [
{ provide: bootstrap_1.ProcessRunRootToken, useValue: processRoot }
]
// exports: [
// ServerModule,
// ConfigureFileLoader
// ]
})
], ServerBootstrapModule);
exports.ServerBootstrapModule = ServerBootstrapModule;
//# sourceMappingURL=sourcemaps/BootstrapModule.js.map
;