UNPKG

@nestjs/platform-express

Version:

Nest - modern, fast, powerful node.js web framework (@platform-express)

41 lines (40 loc) 1.35 kB
import { __decorate, __metadata, __param } from "tslib"; import { Inject, mixin, Optional, } from '@nestjs/common'; import multer from 'multer'; import { MULTER_MODULE_OPTIONS } from '../files.constants.js'; import { transformException } from '../multer/multer.utils.js'; /** * @param fieldName * @param localOptions * * @publicApi */ export function FileInterceptor(fieldName, localOptions) { let MixinInterceptor = class MixinInterceptor { multer; constructor(options = {}) { this.multer = multer({ ...options, ...localOptions, }); } async intercept(context, next) { const ctx = context.switchToHttp(); await new Promise((resolve, reject) => this.multer.single(fieldName)(ctx.getRequest(), ctx.getResponse(), (err) => { if (err) { const error = transformException(err); return reject(error); } resolve(); })); return next.handle(); } }; MixinInterceptor = __decorate([ __param(0, Optional()), __param(0, Inject(MULTER_MODULE_OPTIONS)), __metadata("design:paramtypes", [Object]) ], MixinInterceptor); const Interceptor = mixin(MixinInterceptor); return Interceptor; }