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
44 lines • 1.62 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Multer = void 0;
const multer_1 = __importDefault(require("multer"));
const Multer = (path, options) => {
return (target, key, descriptor) => {
const upload = (0, multer_1.default)({ storage: multer_1.default.memoryStorage() });
const type = typeof options?.single === "undefined" || options?.single
? "single"
: "array";
if (!Reflect.hasMetadata("routes", target.constructor)) {
Reflect.defineMetadata("routes", [], target.constructor);
}
if (!Reflect.hasMetadata("multer", target.constructor)) {
Reflect.defineMetadata("multer", {
path,
options,
type: type,
}, target.constructor);
}
const routes = Reflect.getMetadata("routes", target.constructor);
const route = routes.find((route) => route.methodName === key) || {
methodName: key,
middlewares: [],
};
if (route.middlewares) {
route.middlewares.push(upload[type](path));
}
else {
route.middlewares = [upload[type](path)];
}
route.multer = {
path,
options,
type: type,
};
Reflect.defineMetadata("routes", [...routes, route], target.constructor);
};
};
exports.Multer = Multer;
//# sourceMappingURL=Multer.js.map
;