2023-08-11 10:39:53 +02:00

22 lines
724 B
TypeScript

import { registerDecorator, ValidationOptions, ValidationArguments } from 'class-validator'
export function isValidDateString(validationOptions?: ValidationOptions) {
// eslint-disable-next-line @typescript-eslint/ban-types
return function (object: Object, propertyName: string) {
registerDecorator({
name: 'isValidDateString',
target: object.constructor,
propertyName,
options: validationOptions,
validator: {
validate(value: string) {
return new Date(value).toString() !== 'Invalid Date'
},
defaultMessage(args: ValidationArguments) {
return `${propertyName} must be a valid date string, ${args.property}`
},
},
})
}
}