poppinss / indicative

Indicative is a simple yet powerful data validator for Node.js and browsers. It makes it so simple to write async validations on nested set of data.
https://indicative.adonisjs.com/
MIT License
417 stars 52 forks source link

Support for stopping validation on first error per field #250

Open olaoluwa-98 opened 5 years ago

olaoluwa-98 commented 5 years ago

For instance, if you have the following rules:

    email: 'required|email|unique:users,email',
    phone_no: 'required|unique:users,phone_no',
    password: 'required|min:8'

You may want the validation for email to stop on first error but continue to validate other fields such as phone_no and password which also will stop on first error of any rule item. I believe this feature will allow you to save time spent validating each item of a single rule.

validateAll continues to validate all fields including all the rules under each field. What I am proposing is a validate method that stops validation for each field on first error but continues to validate the other fields.

I am willing to work on it but will need assistance.

thetutlage commented 5 years ago

Hello @olaoluwa-98

Yeah, will be nice to have such a feature. Couple of questions?

  1. What should be the name of property? Since validateAll is reserved, what should we call it?
  2. Can you start working on the PR and just ping me, if you get stuck somewhere?
olaoluwa-98 commented 5 years ago

Hello @thetutlage, sorry for the late response.

I'm not sure what name can go with it. But I suggest that we accept an option on the validateAll or validate that will allow this feature. e.g In validate(data, rules, messages, options), the options object will accept the option for. I'll start working on the PR.