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
JavaScript
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
;