Construindo seus próprios validadores do CtroEnv
Os validadores integrados no CtroEnv cobrem o básico. Você tem string, number, boolean e pick. Mas, às vezes, você precisa de mais. Eu precisei de um validador de IPv6. Ele não estava lá. Então, eu o construí.
Você pode construir seus próprios validadores usando as mesmas ferramentas que eu uso.
Veja como funciona.
Um validador é um objeto com uma função parse e metadados. A função parse recebe uma entrada bruta e retorna sucesso ou falha.
Você pode usar createValidator para começar. Este é o caminho mais simples.
No entanto, um validador básico carece de métodos auxiliares. Ele não possui .default() ou .optional(). Você deve usar applyChain para adicionar esses métodos.
Se você quiser adicionar uma lógica específica, como .min() para strings, você estende o validador. Isso permite envolver a lógica original e adicionar novas regras.
Existem duas maneiras principais de adicionar lógica personalizada:
- Criar um novo validador do zero com createValidator.
- Criar um refinamento que envolve um validador existente. Refinamentos são ótimos para coisas como cores hexadecimais ou formatos de e-mail.
Aqui está um resumo das ferramentas que você pode usar:
• createValidator: Cria um validador base com lógica personalizada. • applyChain: Adiciona .optional(), .default() e .describe(). • parseOk: Retorna um resultado de sucesso. • singleError: Retorna um resultado de falha. • errType e errInvalid: Criam mensagens de erro específicas.
Você pode até publicar seus próprios validadores como pacotes da comunidade. Use o prefixo @ctroenv/community-. Seu pacote precisa apenas do @ctroenv/core como dependência.
Se você construir algo útil, por favor, compartilhe. Você pode abrir um PR ou publicá-lo para que outros usem.
Fonte: https://dev.to/ctrotech/building-your-own-ctroenv-validators-19h8