UNPKG

@nestjs/common

Version:

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

34 lines (33 loc) 1.2 kB
import { FileValidator } from './file-validator.interface.js'; /** * Defines the built-in MaxSize File Validator * * @see [File Validators](https://docs.nestjs.com/techniques/file-upload#file-validation) * * @publicApi */ export class MaxFileSizeValidator extends FileValidator { buildErrorMessage(file) { const { errorMessage, message, ...config } = this.validationOptions; if (errorMessage) { return typeof errorMessage === 'function' ? errorMessage({ file, config }) : errorMessage; } if (message) { return typeof message === 'function' ? message(this.validationOptions.maxSize) : message; } if (file?.size) { return `Validation failed (current file size is ${file.size}, expected size is less than ${this.validationOptions.maxSize})`; } return `Validation failed (expected size is less than ${this.validationOptions.maxSize})`; } isValid(file) { if (!this.validationOptions || !file) { return true; } return 'size' in file && file.size < this.validationOptions.maxSize; } }