@methodus/server
Version:
Server components for @methodus workflow
34 lines • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
require("reflect-metadata");
const class_container_1 = require("../class-container");
function MethodConfig(name, middlewares, repository) {
return (target) => {
const existingMetadata = class_container_1.ClassContainer.get(name) || {};
existingMetadata.name = name;
let proto = target.prototype || target.__proto__;
if (target.methodus) {
proto = target;
}
proto.methodus[name] = proto.methodus[name] || { _events: {}, _descriptors: {} };
proto.methodus[name].name = name;
if (repository) {
proto.methodus[name].repository = repository;
}
proto.methodus[name].middlewares = middlewares;
existingMetadata.middlewares = middlewares;
class_container_1.ClassContainer.set(name, existingMetadata);
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];
});
}
};
}
exports.MethodConfig = MethodConfig;
//# sourceMappingURL=method-config.js.map