UNPKG

@methodus/framework-decorators

Version:

Server Decorators for methodus

48 lines 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MethodConfig = void 0; require("reflect-metadata"); var framework_injection_1 = require("@methodus/framework-injection"); function MethodConfig(name, middlewares, prefix) { return function (target) { framework_injection_1.default.Injector.register(name || target, { useClass: target }); var instance = framework_injection_1.default.Injector.resolve(name); var existingMetadata = framework_injection_1.default.Injector.resolve(name) || {}; existingMetadata.name = name; var proto = target.prototype || target.__proto__; if (target.methodus) { proto = target; } if (!proto.methodus) { return; } proto.methodus[name] = proto.methodus[name] || { _auth: {}, _events: {}, _descriptors: {}, }; proto.methodus[name].name = name; if (prefix) { proto.methodus[name].prefix = prefix; } if (Object.keys(proto.methodus).length > 1) { var baseClass = Object.values(proto.methodus).filter(function (item) { return item.isBase; }); var baseClone = baseClass[0] ? JSON.parse(JSON.stringify(baseClass[0]._descriptors)) : {}; var targetClone = JSON.parse(JSON.stringify(proto.methodus[name]._descriptors)); var new_assign = Object.assign({}, baseClone, targetClone); proto.methodus[name]._descriptors = new_assign; } proto.methodus[name].middlewares = middlewares; existingMetadata.middlewares = middlewares; framework_injection_1.default.ClassContainer.set(name, existingMetadata); Object.values(proto.methodus[name]._descriptors).forEach(function (descriptor) { return instance[descriptor.propertyKey]; }); }; } exports.MethodConfig = MethodConfig; //# sourceMappingURL=method-config.js.map