import { ValidationArguments } from './ValidationArguments'; export class ValidationUtils { static replaceMessageSpecialTokens( message: string | ((args: ValidationArguments) => string), validationArguments: ValidationArguments ): string { let messageString: string; if (message instanceof Function) { messageString = (message as (args: ValidationArguments) => string)(validationArguments); } else if (typeof message === 'string') { messageString = message; } if (messageString && validationArguments.constraints instanceof Array) { validationArguments.constraints.forEach((constraint, index) => { messageString = messageString.replace(new RegExp(`\\$constraint${index + 1}`, 'g'), constraint); }); } if ( messageString && validationArguments.value !== undefined && validationArguments.value !== null && typeof validationArguments.value === 'string' ) messageString = messageString.replace(/\$value/g, validationArguments.value); if (messageString) messageString = messageString.replace(/\$property/g, validationArguments.property); if (messageString) messageString = messageString.replace(/\$target/g, validationArguments.targetName); return messageString; } }