|
| 1 | +"use strict"; |
| 2 | +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { |
| 3 | + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; |
| 4 | + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); |
| 5 | + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; |
| 6 | + return c > 3 && r && Object.defineProperty(target, key, r), r; |
| 7 | +}; |
| 8 | +var __metadata = (this && this.__metadata) || function (k, v) { |
| 9 | + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); |
| 10 | +}; |
| 11 | +var __param = (this && this.__param) || function (paramIndex, decorator) { |
| 12 | + return function (target, key) { decorator(target, key, paramIndex); } |
| 13 | +}; |
| 14 | +Object.defineProperty(exports, "__esModule", { value: true }); |
| 15 | +const multer = require("multer"); |
| 16 | +const decorators_1 = require("../../decorators"); |
| 17 | +const component_decorator_1 = require("../../decorators/core/component.decorator"); |
| 18 | +const files_constants_1 = require("./../files.constants"); |
| 19 | +const multer_utils_1 = require("./../multer/multer.utils"); |
| 20 | +function FileFieldsInterceptor(uploadFields, localOptions) { |
| 21 | + let MixinInterceptor = class MixinInterceptor { |
| 22 | + constructor(options = {}) { |
| 23 | + this.upload = multer(Object.assign({}, options, localOptions)); |
| 24 | + } |
| 25 | + async intercept(context, call$) { |
| 26 | + const ctx = context.switchToHttp(); |
| 27 | + await new Promise((resolve, reject) => this.upload.fields(uploadFields)(ctx.getRequest(), ctx.getResponse(), err => { |
| 28 | + if (err) { |
| 29 | + const error = multer_utils_1.transformException(err); |
| 30 | + return reject(error); |
| 31 | + } |
| 32 | + resolve(); |
| 33 | + })); |
| 34 | + return call$; |
| 35 | + } |
| 36 | + }; |
| 37 | + MixinInterceptor = __decorate([ |
| 38 | + __param(0, decorators_1.Optional()), |
| 39 | + __param(0, decorators_1.Inject(files_constants_1.MULTER_MODULE_OPTIONS)), |
| 40 | + __metadata("design:paramtypes", [Object]) |
| 41 | + ], MixinInterceptor); |
| 42 | + const Interceptor = component_decorator_1.mixin(MixinInterceptor); |
| 43 | + return Interceptor; |
| 44 | +} |
| 45 | +exports.FileFieldsInterceptor = FileFieldsInterceptor; |
0 commit comments