UNPKG

@methodus/framework-decorators

Version:

Server Decorators for methodus

43 lines 1.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MethodPipe = void 0; require("reflect-metadata"); var framework_injection_1 = require("@methodus/framework-injection"); var methodMetadataKey = 'methodus'; function MethodPipe(verb, route, middlewares) { var _this = this; return function (target, propertyKey, descriptor) { target.methodus = target.methodus || {}; var name = target.name || target.constructor.name; target.methodus[name] = target.methodus[name] || { _auth: {}, _events: {}, _descriptors: {}, }; target.methodus = target.methodus || {}; var mTarget = target.methodus[name]; var metaObject = Object.assign({}, { verb: verb, route: route, propertyKey: propertyKey, middlewares: middlewares, params: [] }); if (mTarget._descriptors[propertyKey]) { Object.assign(metaObject, { params: mTarget._descriptors[propertyKey].params, }); } Reflect.defineMetadata(methodMetadataKey, metaObject, target, propertyKey); mTarget._descriptors[propertyKey] = metaObject; var paramsMap = metaObject.params; paramsMap.sort(function (a, b) { return a.index - b.index; }); var methodHandler = framework_injection_1.default.Injector.resolve('MethodPipeHandler'); return methodHandler.methodDecorator.apply(_this, [ target, propertyKey, descriptor, verb, route, middlewares, ]); }; } exports.MethodPipe = MethodPipe; //# sourceMappingURL=method-pipe.js.map