forked from nestjs/nest
-
Notifications
You must be signed in to change notification settings - Fork 0
/
parse-file-pipe.builder.ts
37 lines (32 loc) 路 1003 Bytes
/
parse-file-pipe.builder.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import {
FileTypeValidator,
FileTypeValidatorOptions,
} from './file-type.validator';
import { FileValidator } from './file-validator.interface';
import {
MaxFileSizeValidator,
MaxFileSizeValidatorOptions,
} from './max-file-size.validator';
import { ParseFileOptions } from './parse-file-options.interface';
import { ParseFilePipe } from './parse-file.pipe';
export class ParseFilePipeBuilder {
private validators: FileValidator[] = [];
addMaxSizeValidator(options: MaxFileSizeValidatorOptions) {
this.validators.push(new MaxFileSizeValidator(options));
return this;
}
addFileTypeValidator(options: FileTypeValidatorOptions) {
this.validators.push(new FileTypeValidator(options));
return this;
}
build(
additionalOptions?: Omit<ParseFileOptions, 'validators'>,
): ParseFilePipe {
const parseFilePipe = new ParseFilePipe({
...additionalOptions,
validators: this.validators,
});
this.validators = [];
return parseFilePipe;
}
}