@methodus/framework-decorators
Version:
Server Decorators for methodus
43 lines • 1.69 kB
JavaScript
;
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