A classe validators é chamada pela função validate que recebe dois argumentos
data - do tipo Array de objetos;
validates - do tipo IValidates.
a interface IValidates recebe dois argumentos possiveis, sendo um requerido
validator - recebe uma string ou uma array contendo as validações
messages (opcional) - recebe um objeto contendo chave (nome do campo) e valor
Validações:
string - Verifica se o campo é uma string
number - Verifica se o campo é um numero
array - Verifica se o campo é uma array
object - Verifica se o campo é um objeto
N>(numero) - Verifica se o valor é maior que (numero)
para utilizar esta validação você colocará desta maneira: N>10, ou N>50,
depois do N> vem o numero da validação, se o campo for numero, ele irá verificar
se o numero é maior que o informado, caso for string, ele irá verificar se a string contém
mais caracteres que o numero informado.
N<(numero) - Mesma funcionalidade da validação anterior, somente muda a verificação para menor que
required - Verifica se o campo existe
Mensagens de erro:
Na função valideMessages contém as mensagens padrões para cada tipo de validação, todavia
é opcional caso queira modificar estas mensagens, utilizando o argumento messages, quando for chamar a função validate
Para utilizar uma mensagem opcional, é necessario informar no objeto o nome do campo validado, e o erro, ex:
messages: { password: { "N>10": "O campo password precisa conter mais que 10 numeros", "number": "O campo precisa ser do tipo numero" } }
Caso queira mostrar o valor encontrado, e o nome da validação, basta passar
a chave {name} para mostrar o nome do campo validado e {value} para o
valor validado.
Customizando exibição do erro:
No segundo argumento passado ao validate, passe dentro do objeto errorProvider,
errorProvider é do tipo função, que deverá receber o argumento error do tipo string,
e dentro desta função você poderá exibir em toasts customizados por você, alertas, e etc.
Deixo abaixo um exemplo de validação:
const valide = new Validators(); const validated = valide.validate( [ { data: 60, teste: 1, }, ], { validator: { data: ["number", "N>10", "N<50"], teste: "string", }, messages: { data: { "number": "Este dado precisa ser um numero", "N>10": "Este dado precisa ser maior que 10", }, teste: "Este dado precisa ser uma frase indiana" }, errorProvider: (error: any) => message.error(error) //toast antd } ); result: event - message.error("This value of field data needs must be less than 50") result: event - message.error("Este dado precisa ser uma frase indiana")