@methodus/server
Version:
Server components for @methodus workflow
47 lines • 2.28 kB
JavaScript
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
;