Frontend
validation-br 2.0: Validação em TypeScript, zero dependências
Claudio Medeiros Dev.to (EN Zone)
1 views
Acabei de lançar a versão 2.0 do validation-br, uma biblioteca em TypeScript para validar documentos brasileiros: CPF, CNPJ (numérico e alfanumérico), CEP, Boleto, chave Pix, Pix Copia e Cola, Título de Eleitor, PIS/PASEP, CNH, RENAVAM e mais uma dezena de outros formatos.
A grande mudança da 2.0 é a forma como a validação funciona: cada documento agora é uma classe imutável, no estilo value object. Em vez de chamar uma função que devolve true ou false, você instancia o documento e ele já nasce validado.
import { CPF } from 'validation-br/cpf';
const cpf = new CPF('906.259.666-51');
cpf.value // -> '90625966651', o valor normalizado, sem máscara
cpf.mask() // -> '906.259.666-51'
Se o valor for inválido, o construtor lança uma exceção em vez de devolver false. Isso deixa o fluxo mais explícito: ou você tem um CPF de verdade em mãos, ou você trata o erro. Pra quem só quer um booleano rápido, os atalhos isCPF, isCNPJ etc. continuam existindo e funcionando exatamente como antes.
Um ponto que considero importante: o pacote não tem nenhuma dependência em produção. Zero. Só usa APIs nativas do JS/TS, o que significa um node_modules mais enxuto e uma superfície de ataque bem menor pra quem se preocupa com supply chain.
Exemplo: CNPJ alfanumérico
Desde 2026 a Receita Federal aceita CNPJ com letras no corpo do número (mantendo os dois últimos dígitos verificadores sempre numéricos). O validation-br já suporta isso, inclusive pra gerar exemplos fake pra teste:
import { CNPJ } from 'validation-br/cnpj';
// Gera um CNPJ alfanumérico de exemplo
CNPJ.fake({ alphanumeric: true }).mask();
// -> 'WX.BC2.1FX/0001-00'
new CNPJ('WX.BC2.1FX/0001-00').value;
// -> 'WXBC21FX000100', o valor normalizado
A mesma classe calcula o dígito verificador, aplica e remove máscara, e gera valores fake válidos, tanto no formato numérico tradicional quanto no alfanumérico novo.
Onde encontrar
Site e documentação completa: https://validation-br.js.org
Código no GitHub: https://github.com/klawdyo/validation-br
Instalação: npm install validation-br
Read original: https://dev.to/klawdyo/validation-br-20-validacao-em-typescript-zero-dependencias-h0p
← Previous
Semantic tag vs Non-Semantic tag
Next →
Designing a Privacy-First Architecture for Sensitive Data: Zero-IP Logging, Postgres RLS, and AI Safety
Related
The same one-line table-parsing bug turned up in five separate tools. I fixed it four times.
Frontend
7
DEV Community
How to Price Web Design Projects: A Practical Guide for Freelancers
Frontend
4
Dev.to (EN Zone)
Post Apache Ossie, what distinguishes semantic layers?
Frontend
7
Dev.to (EN Zone)
When should a QWidget animation stop its timer?
Frontend
5
Dev.to (EN Zone)
Comments0
No comments yet — be the first