@methodus/server
Version:
Server components for @methodus workflow
53 lines • 1.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const config_1 = require("./config");
const log_1 = require("./log/");
const server_1 = require("./server");
const events_1 = require("events");
let ConfiguredServer = class ConfiguredServer extends events_1.EventEmitter {
constructor(target) {
super();
if (target) {
this.target = target;
}
this.init();
}
async init() {
const options = this.target.prototype.options;
const server = new server_1.Server();
this.server = server;
server.config = new config_1.MethodusConfig();
options.servers.forEach((element) => {
if (server.config) {
server.config.run(element.serverType, element.options);
}
});
options.classes.forEach((element) => {
if (server.config) {
server.config.use(element.controller, element.methodType, element.serverType);
}
});
options.clients.forEach((element) => {
if (server.config) {
server.config.useClient(element.controller, element.transportType, element.resolver);
}
});
if (options.plugins) {
server.plugins(options.plugins);
}
await server.start();
this.emit('ready');
}
kill() {
if (this.server) {
this.server.kill();
}
}
};
ConfiguredServer = tslib_1.__decorate([
log_1.LogClass(log_1.logger),
tslib_1.__metadata("design:paramtypes", [Object])
], ConfiguredServer);
exports.ConfiguredServer = ConfiguredServer;
//# sourceMappingURL=server.configured.js.map