@methodus/server
Version:
Server components for @methodus workflow
65 lines • 2.59 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.ConfiguredServer = void 0;
const framework_commons_1 = require("@methodus/framework-commons");
const server_1 = require("./server");
const events_1 = require("events");
class ConfiguredServer extends events_1.EventEmitter {
constructor(target) {
super();
if (target) {
this.target = target;
}
this.init();
}
init() {
return __awaiter(this, void 0, void 0, function* () {
let options = {};
if (this.target) {
options = this.target.prototype.options;
}
else {
options = this.__proto__.options;
}
const server = new server_1.Server();
this.server = server;
server.config = new framework_commons_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);
}
yield server.start();
this.emit('ready', server);
});
}
kill() {
if (this.server) {
this.server.kill();
}
}
}
exports.ConfiguredServer = ConfiguredServer;
//# sourceMappingURL=server.configured.js.map