Skip to content

Commit e967ba1

Browse files
Merge pull request nestjs#936 from nestjs/bugfix/935-file-interceptor
bugfix(@nestjs/common) fix multiple file interceptors issue
2 parents 2ea58ac + 0b191fb commit e967ba1

3 files changed

Lines changed: 9 additions & 7 deletions

File tree

packages/common/interceptors/file-fields.interceptor.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import * as multer from 'multer';
22
import { Observable } from 'rxjs';
3+
import { mixin } from '../decorators/core/component.decorator';
34
import { ExecutionContext } from '../interfaces';
45
import { MulterField, MulterOptions } from '../interfaces/external/multer-options.interface';
56
import { NestInterceptor } from './../interfaces/features/nest-interceptor.interface';
@@ -9,7 +10,7 @@ export function FileFieldsInterceptor(
910
uploadFields: MulterField[],
1011
options?: MulterOptions,
1112
) {
12-
const Interceptor = class implements NestInterceptor {
13+
const Interceptor = mixin(class implements NestInterceptor {
1314
readonly upload = multer(options);
1415

1516
async intercept(
@@ -33,6 +34,6 @@ export function FileFieldsInterceptor(
3334
);
3435
return call$;
3536
}
36-
};
37+
});
3738
return Interceptor;
3839
}

packages/common/interceptors/files.interceptor.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
import * as multer from 'multer';
2-
import { NestInterceptor } from './../interfaces/features/nest-interceptor.interface';
32
import { Observable } from 'rxjs';
3+
import { mixin } from '../decorators/core/component.decorator';
4+
import { ExecutionContext } from '../interfaces';
45
import { MulterOptions } from '../interfaces/external/multer-options.interface';
6+
import { NestInterceptor } from './../interfaces/features/nest-interceptor.interface';
57
import { transformException } from './multer/multer.utils';
6-
import { ExecutionContext } from '../interfaces';
78

89
export function FilesInterceptor(
910
fieldName: string,
1011
maxCount?: number,
1112
options?: MulterOptions,
1213
) {
13-
const Interceptor = class implements NestInterceptor {
14+
const Interceptor = mixin(class implements NestInterceptor {
1415
readonly upload = multer(options);
1516

1617
async intercept(
@@ -34,6 +35,6 @@ export function FilesInterceptor(
3435
);
3536
return call$;
3637
}
37-
};
38+
});
3839
return Interceptor;
3940
}

sample/15-mvc/src/app.controller.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Get, Controller, Render } from '@nestjs/common';
1+
import { Controller, Get, Render } from '@nestjs/common';
22

33
@Controller()
44
export class AppController {

0 commit comments

Comments
 (0)