/** * Author: Đào Quốc Huy / huydaoquoc88@gmail.com * Description: Invalid empty (null, undefined, "") */ import { registerDecorator, ValidationArguments, ValidationOptions, ValidatorConstraint, ValidatorConstraintInterface } from 'class-validator'; /** * @Example `@IsNotEmpty_I18n()`. * @Return false if not set, or empty "" or just space "" * @Require i18n translate: "validation.CAN_NOT_BE_EMPTY" */ export function IsNotEmpty_I18n(validationOptions?: ValidationOptions) { return (object: any, propertyName: string) => { registerDecorator({ target: object.constructor, propertyName, options: validationOptions, constraints: [], validator: IsNotEmpty_I18nConstraint, }); }; } @ValidatorConstraint({ name: 'IsNotEmpty_I18n' }) export class IsNotEmpty_I18nConstraint implements ValidatorConstraintInterface { validate(value: any, validationArguments?: ValidationArguments) { if (value !== undefined && value != null) { if(typeof value === "string" && value.replace(/ /,"") === ""){ return false }else { return true } } else { return false } } defaultMessage(validationArguments?: ValidationArguments): string { return "validation.CAN_NOT_BE_EMPTY" } }