UNPKG

fastify-file-interceptor

Version:

This library for Nestjs using FastifyAdapter it rely on library fastify-multer and express multer

37 lines 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileFastifyInterceptor = void 0; const tslib_1 = require("tslib"); const common_1 = require("@nestjs/common"); const fastify_multer_1 = tslib_1.__importDefault(require("fastify-multer")); const multer_module_option_1 = require("../constant/multer-module-option"); const multer_utils_1 = require("../utils/multer-utils"); function FileFastifyInterceptor(fieldName, localOptions) { let MixinInterceptor = class MixinInterceptor { constructor(options) { this.multer = fastify_multer_1.default(Object.assign(Object.assign({}, options), localOptions)); } intercept(context, next) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const ctx = context.switchToHttp(); yield new Promise((resolve, reject) => this.multer.single(fieldName)(ctx.getRequest(), ctx.getResponse(), (err) => { if (err) { const error = multer_utils_1.transformException(err); return reject(error); } resolve(); })); return next.handle(); }); } }; MixinInterceptor = tslib_1.__decorate([ tslib_1.__param(0, common_1.Optional()), tslib_1.__param(0, common_1.Inject(multer_module_option_1.MULTER_MODULE_OPTIONS)), tslib_1.__metadata("design:paramtypes", [Object]) ], MixinInterceptor); const Interceptor = common_1.mixin(MixinInterceptor); return Interceptor; } exports.FileFastifyInterceptor = FileFastifyInterceptor; //# sourceMappingURL=file-fastify-interceptor.js.map