Использовать существующий валидатор в пользовательском валидаторе для validatejs - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь переписать набор ограничений в один валидатор, который должен возвращать одну (первую найденную) ошибку вместо всех ошибок.Прямо сейчас у меня есть следующий код, который, когда предоставляется пустая строка, возвращает две ошибки (как для присутствия, так и для электронной почты):

email: {
        presence: {
          message: ValidationErrors.EMAILMISSING
        },
        email:{
          message: ValidationErrors.EMAILINVALID
        },
        length: {
          maximum: 128,
          tooLong: ValidationErrors.EMAILTOOLONG
        }
      },

Я пытаюсь написать собственный валидатор, который используетсуществующие валидаторы (наличие, адрес электронной почты и длина), но возвращают только первую найденную ошибку.Примерно так (псевдокод ниже):

email: value => {
        if (!value) {
          return ValidationErrors.EMAILMISSING;
        }

        if (value.length > 128) {
          return ValidationErrors.EMAILTOOLONG;
        }

        if (value.isEmail()) {
          return ValidationErrors.EMAILINVALID;
        }
      },

Конечно, в этом текущем случае я мог бы достичь той же логики, просто получив только первую запись массива ошибок, возвращенную validate.async().Я хотел бы знать, есть ли способ использовать существующие валидаторы внутри написанного пользователем валидатора, если мне нужно использовать их для более сложной логики валидации.

Я не уверен, что мне удалосьобъясните мою проблему хорошо, если я могу предоставить больше информации, пожалуйста, попросите детали.

...