/// module formsjs { export class ValidationService { protected strings_:Strings; /** * Constructor. */ constructor(strings?:Strings) { this.strings_ = strings || new Strings(); } /** * Default validation failure messages. */ public get strings():Strings { return this.strings_; } public set strings(value:Strings) { this.strings_ = value; } /** * Validates an individual attribute (specified by fieldName) according to the provided validation rules. * * @param fieldName Name of attribute in formData object * @param formData Form data * @param validationSchema See {@link ValidationSchema} * @returns Promise that resolves/rejects based on validation outcome. */ public validateField(fieldName:string, formData:any, validationSchema:ValidationSchema):Promise { var value:any = Flatten.read(fieldName, formData); var validatableAttribute:ValidatableAttribute = Flatten.read(fieldName, validationSchema); var promise:Promise = new ValidationPromiseBuilder() .add(new RequiredValidator(this.strings).validate(value, formData, validatableAttribute)) .add(new TypeValidator(this.strings).validate(value, formData, validatableAttribute)) .add(new MinMaxValidator(this.strings).validate(value, formData, validatableAttribute)) .add(new EnumValidator(this.strings).validate(value, formData, validatableAttribute)) .add(new PatternValidator(this.strings).validate(value, formData, validatableAttribute)) .add(new CustomValidator(this.strings).validate(value, formData, validatableAttribute)) .build(); return promise; } } }