2023-08-09 14:55:21 +02:00

23 lines
743 B
TypeScript

import { registerDecorator, ValidationOptions, ValidationArguments } from 'class-validator'
import { Decimal } from 'decimal.js-light'
export function IsPositiveDecimal(validationOptions?: ValidationOptions) {
// eslint-disable-next-line @typescript-eslint/ban-types
return function (object: Object, propertyName: string) {
registerDecorator({
name: 'isPositiveDecimal',
target: object.constructor,
propertyName,
options: validationOptions,
validator: {
validate(value: Decimal) {
return value.greaterThan(0)
},
defaultMessage(args: ValidationArguments) {
return `The ${propertyName} must be a positive value ${args.property}`
},
},
})
}
}