You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1.0 KiB

export interface ErrorMessages {
LIMIT_PART_COUNT: 'Too many parts'
LIMIT_FILE_SIZE: 'File too large'
LIMIT_FILE_COUNT: 'Too many files'
LIMIT_FIELD_KEY: 'Field name too long'
LIMIT_FIELD_VALUE: 'Field value too long'
LIMIT_FIELD_COUNT: 'Too many fields'
LIMIT_UNEXPECTED_FILE: 'Unexpected field'
}
const errorMessages: ErrorMessages = {
LIMIT_PART_COUNT: 'Too many parts',
LIMIT_FILE_SIZE: 'File too large',
LIMIT_FILE_COUNT: 'Too many files',
LIMIT_FIELD_KEY: 'Field name too long',
LIMIT_FIELD_VALUE: 'Field value too long',
LIMIT_FIELD_COUNT: 'Too many fields',
LIMIT_UNEXPECTED_FILE: 'Unexpected field',
}
class MulterError extends Error {
code: string
field: string | undefined = undefined
constructor(code: keyof ErrorMessages, field?: string) {
super()
this.name = this.constructor.name
this.message = errorMessages[code]
this.code = code
if (field) {
this.field = field
}
Error.captureStackTrace(this, this.constructor)
}
}
export default MulterError