import {ArgumentProcessorContext, ParamType} from "./types"; import {InputHelper} from "./input-helper"; export interface FileFilter { (this: ArgumentProcessorContext, object: Express.Multer.File): boolean; } export class FileInputHelper extends InputHelper { private fileCount: number; toJSON(): ParamType { return Object.assign(super._toJSON(), { upload: { fileCount: this.fileCount, } }); } filter(fn: FileFilter) { this.state.filter = function (flist) { return flist.every(fn, this); }; return this; } single() { this.fileCount = 1; this.state.handler = (flist) => { return flist[0]; }; return this; } multi(max: number = 5) { this.fileCount = max; return this; } }