updateFieldResults
In some scenarios, validation results need to be produced outside the flow of calling into Strickland to perform validation. For example, an API call might perform server-side validation and return validation results that need to be populated into your application's validation result state.
To assist with such scenarios, Strickland's form
validator offers an updateFieldResults
helper function that can update existing validation results with new field results.
Usage
const personValidator = form({
firstName: [
required(),
length({minLength: 2, maxLength: 20})
],
lastName: [
required(),
length({minLength: 2, maxLength: 20})
],
birthYear: range({min: 1900, max: 2018})
});
let stanfordStrickland = {
firstName: 'Stanford',
lastName: 'Strickland',
birthYear: 1925
};
let stanfordResult = validate(personValidator, stanfordStrickland);
let firstNameResult = {
isValid: false,
value: 'Stanford',
message: 'The service does not allow a first name of "Stanford"'
};
stanfordResult = personValidator.updateFieldResults(
stanfordResult,
{firstName: firstNameResult}
);
/*
stanfordResult = {
form: {
validationResults: {
firstName: {
isValid: false,
value: 'Stanford',
message: 'The service does not allow a first name of "Stanford"'
},
lastName: {
isValid: true
},
birthYear: {
isValid: true
}
},
validationErrors: [
{
fieldName: 'firstName',
isValid: false,
value: 'Stanford',
message: 'The service does not allow a first name of "Stanford"'
}
],
isComplete: true
}
}
*/
Removing Results
To remove a field's results, provide null
as the value of the field result.
stanfordResult = personValidator.updateFieldResults(
stanfordResult,
{firstName: null}
);
Last updated
Was this helpful?