UNPKG

@methodus/server

Version:

Server components for @methodus workflow

47 lines 2.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Methods = void 0; const tslib_1 = require("tslib"); require("reflect-metadata"); const commons_1 = require("@methodus/framework-decorators/commons"); const serversList_1 = require("../servers/serversList"); const injection_1 = tslib_1.__importDefault(require("@methodus/framework-decorators/injection")); var Methods; (function (Methods) { function MethodConfigBase(name, middlewares, repository) { return (target) => { const existingMetadata = injection_1.default.ClassContainer.get(name) || {}; existingMetadata.name = name; const original = target.prototype.constructor; original.prototype.options = original.prototype.options || { servers: [], classes: [], clients: [], plugins: [] }; let proto = target.prototype || target.__proto__; if (target.methodus) { proto = target; } proto.methodus[name].isBase = true; proto.methodus_base = JSON.parse(JSON.stringify(proto.methodus[name])); serversList_1.Servers.classes[target.name] = { classType: target, controller: target, methodType: commons_1.MethodType.Local, serverType: commons_1.ServerType.Express, }; const methods = Object.getOwnPropertyNames(target.prototype); methods.forEach((methodName) => { return target.prototype[methodName]; }); if (target.prototype.constructor) { const staticMethods = Object.getOwnPropertyNames(target.prototype.constructor); staticMethods.forEach((methodName) => { return target.prototype.constructor[methodName]; }); } proto.methodus_base.middlewares = middlewares; target.methodus_base = proto.methodus_base; existingMetadata.middlewares = middlewares; injection_1.default.ClassContainer.set(name, existingMetadata); }; } Methods.MethodConfigBase = MethodConfigBase; })(Methods = exports.Methods || (exports.Methods = {})); //# sourceMappingURL=method-config-base.js.map