Executando verificação de segurança...
2

[PITCH] Pacote Type-script e Open-Source para validação de documentos BR(Boletos, CPF, CNPJ, CEP...)

Olá pessoal, tudo bem? Recentemente lancei meu primeiro pacote NPM, br-docs

Durante meus projetos, vi a necessidade de uma biblioteca que agrupasse a grande quantidade de documentos, que nós, desenvolvedores Brasileiros temos que validar diariamente. E alguns desses possuem uma lógica bem complexa, como o boleto.

Funcionalidades

Como citado anteriormente, br-docs válida documentos brasileiros, mas também conta com formatação e parsing.

DocumentoValidaçãoFormataçãoParsing
CPF
Boleto(47, 48)
CNPJ
CEP
CELULAR
EMAILXX
PIXX
TELEFONE
UUIDX

Em atualizações futuras, pretendo adicionar outros documentos brasileiros, como PIS, Renavam, Título Eleitoral e outros.

Instalação

npm install br-docs

ou

yarn add br-docs

Exemplo de uso

import { Cpf, Cnpj } from "br-docs";

Cnpj.isValid("11.222.333/0001-81"); // true
Cpf.isValid("123.456.789-09"); // true

Arquitetura

O projeto usa uma interface genérica em todos os validadores, também conta com testes unitários para todos os tipos de documento.

Próximos passos

Bom pessoal, vim aqui mostrar pra vocês com intenção de descobrir novas ideias para melhorar o projeto e tornar mais útil. Se você gostou e achou útil, por favor peço que usem, testem e me passem o feedback de vocês.

NPM Package
Github
Linkedin

Carregando publicação patrocinada...
1

Recomendação:
una o celular e telefone em um só, a não ser que vc queira usar em algo mtooooo específico para diferenciar eles. A diferença dentre celular e telefone é apenas 1 dígito.
Não sou mto bom de regex e não entendi mto bem o q vc fez ali, mas recomendo expandir um pouco a variação, tipo aceitar +55 (11) 22222-3333 ou só nros 5511222223333 e outras variações misturando celular com telefone. Em alguns locais é legal ter esse 55 (código do país Brasil).
Adicionando essas coisas, vc conseguirá deixar seu projeto mais amplo pra mais variações, claro q isso se vc quiser.

Eu tenho um format() q criei pro meu trampo, e nele tem o código do país (por mais q a implementação só seja pro BR, resolvi deixar pré-preparado pra aceitar outros países), e aceita alguns tipos de variação de formatação, então teria um enum dizendo qual variação deseja usar.
ex:
+55 (11) 22222-3333
(11) 22222-3333
551122223333
1122223333
e assim vai.

Só pra ajudar vc, uso isso como referência para os telefones/celulares BR:
13 dig - 55 11 22222 3333 (cel)
12 dig - 55 11 2222 3333 (tel)
11 dig - 11 22222 3333 (cel)
10 dig - 11 2222 3333 (tel)
9 dig - 22222 3333 (cel)
8 dig - 2222 3333 (tel)

55 é o código do país (ou DDI)
11 é o código da região (ou DDD)
ai o resto é nro da pessoa

dá pra melhorar a validação limitando o DDI ser apenas 55, DDD disponíveis, e se for celular tem q começar com 9, mas isso só se realmente vc precisar, pelo menos no meu não cheguei a esse preciosismo.

1