@methodus/server
Version:
Server components for @methodus workflow
43 lines • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
require("reflect-metadata");
const class_container_1 = require("../class-container");
const serversList_1 = require("../servers/serversList");
function MethodConfigBase(name, middlewares, repository) {
return (target) => {
const existingMetadata = class_container_1.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_base = JSON.parse(JSON.stringify(target.methodus[name]));
serversList_1.Servers.classes[target.name] = {
classType: target,
controller: target, methodType: "Local",
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];
});
}
if (repository) {
proto.methodus_base.repository = repository;
}
proto.methodus_base.middlewares = middlewares;
target.methodus_base = proto.methodus_base;
existingMetadata.middlewares = middlewares;
class_container_1.ClassContainer.set(name, existingMetadata);
};
}
exports.MethodConfigBase = MethodConfigBase;
//# sourceMappingURL=method-config-base.js.map