UNPKG

reest

Version:

A library inspired by NestJS's elegance, specifically designed for efficient serverless API development on AWS Lambda. It streamlines the creation of microservices with automated Swagger documentation and enhanced decorator-based middleware support, makin

35 lines 1.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Middleware = void 0; const Middleware = (app) => { return function (target, key, descriptor) { // Eğer bir metoda uygulanıyorsa if (key && descriptor) { addMiddlewareToMethod(target, key, new app().use); } else if (typeof target === "function") { // Eğer bir sınıfa uygulanıyorsa, tüm metodlara middleware eklenir addMiddlewareToClass(target, app); } }; }; exports.Middleware = Middleware; function addMiddlewareToMethod(target, key, middleware) { const routes = Reflect.getMetadata("routes", target.constructor); const route = routes.find((route) => route.methodName === key) || { methodName: key, middlewares: [], }; if (!route.middlewares) { route.middlewares = []; } route.middlewares.push(middleware); Reflect.defineMetadata("routes", [...routes, route], target.constructor); } function addMiddlewareToClass(target, app) { const methods = Object.getOwnPropertyNames(target.prototype).filter((method) => method !== "constructor"); methods.forEach((methodName) => { addMiddlewareToMethod(target.prototype, methodName, new app().use); }); } //# sourceMappingURL=Middleware.js.map