Currently, errors on different fields are accumulated:
final payload = {'username':'john'};
final validator = vine.compile(vine.object({
'username': vine.string().minLength(3),
'password': vine
.string()
.hasAtleastOneUpperCase() //Assuming some custom-defined extensions
.hasAtleastOneLowerCase()
.hasAtleastNumber()
})
//Error for both username (minLength) and password (string)
validator.validate({'username':'a', 'password':14})But errors are short-circuiting on fields:
//Only the error for hasAtleastOneUpperCase is thrown
validator.validate({'username':'Il_totore', 'password':'abc'})this is relevant when further validations depend on the first rule (e.g hasAtleastOneUpperCase depends on string) but there are many cases where we would like to accumulate fields error e.g:
//Error for hasAtleastOneUpperCase and hasAtleastOneNumber
validator.validate({'username':'Il_totore', 'password':'abc'})a potential solution would be to add a rule operator (e.g batch)
<R>batch<RextendsVineRule>(List<RFunction(VineRule)>> rules)
final payload = {'username':'john'};
final validator = vine.compile(vine.object({
'username': vine.string().minLength(3),
'password': vine
.string()
.batch([
.hasAtleastOneUpperCase() //Assuming some custom-defined extensions
.hasAtleastOneLowerCase()
.hasAtleastNumber()
])
})
//Error for hasAtleastOneUpperCase and hasAtleastOneNumber
validator.validate({'username':'Il_totore', 'password':'abc'})
Currently, errors on different fields are accumulated:
But errors are short-circuiting on fields:
this is relevant when further validations depend on the first rule (e.g
hasAtleastOneUpperCasedepends onstring) but there are many cases where we would like to accumulate fields error e.g:a potential solution would be to add a rule operator (e.g
batch)