O objetivo do projeto é facilitar a validação e geração de CPF, CNPJ e CNPJ alfanumérico. Também é possível validar CPF e CNPJ utilizando a biblioteca Joi.
npm install @dmalbuquerque/cpf-cnpj-validator
import { cpf, cnpj, documentValidator} from '@dmalbuquerque/cpf-cnpj-validator';
console.log(cpf.isValid('21156032300'));
console.log(cnpj.isValid('20245526000149'));
const { cpf, cnpj, documentValidator} = require('@dmalbuquerque/cpf-cnpj-validator');
console.log(cpf.isValid('21156032300'));
console.log(cnpj.isValid('20245526000149'));
ou
const documents = require('@dmalbuquerque/cpf-cnpj-validator');
console.log(documents.cpf.isValid('21156032300'));
console.log(documents.cnpj.isValid('20245526000149'));
- CPF numérico sem formatação:
cpf.generate(); // Exemplo de retorno: "07208766053"
- CPF formatado:
cpf.generate({ formatted: true }); // Exemplo de retorno: "072.087.660-53"
- CPF válido:
cpf.isValid("07208766053"); // Retorna: true cpf.isValid("072.087.660-53"); // Retorna: true
- CPF inválido:
cpf.isValid("07208766050"); // Retorna: false cpf.isValid("072.087.660-50"); // Retorna: false
- Converter um CPF numérico para o formato padrão:
cpf.format("07208766053"); // Retorna: "072.087.660-53"
-
CNPJ clássico sem formatação:
cnpj.generate({ type: "numeric" }); // Exemplo de retorno: "25143815000150"
ou
cnpj.generate();
-
CNPJ clássico formatado:
cnpj.generate({ type: "numeric", formatted: true }); // Exemplo de retorno: "25.143.815/0001-50"
-
CNPJ alfanumérico sem formatação:
cnpj.generate({ type: "alfanumeric" }); // Exemplo de retorno: "OGZP0N77444Y42"
-
CNPJ alfanumérico formatado:
cnpj.generate({ type: "alfanumeric", formatted: true }); // Exemplo de retorno: "OG.ZP0.N77/444Y-42"
- CNPJ clássico válido:
cnpj.isValid("25143815000150"); // Retorna: true cnpj.isValid("25.143.815/0001-50"); // Retorna: true
- CNPJ clássico inválido:
cnpj.isValid("25143815000140"); // Retorna: false cnpj.isValid("25.143.815/0001-40"); // Retorna: false
- CNPJ alfanumérico válido:
cnpj.isValid("OGZP0N77444Y42"); // Retorna: true cnpj.isValid("OG.ZP0.N77/444Y-42"); // Retorna: true
- CNPJ alfanumérico inválido:
cnpj.isValid("OGZP0N77444Y40"); // Retorna: false cnpj.isValid("OG.ZP0.N77/444Y-40"); // Retorna: false
- Converter um CNPJ numérico para o formato padrão:
cnpj.format("25143815000150"); // Retorna: "25.143.815/0001-50"
- Converter um CNPJ alfanumérico para o formato padrão:
cnpj.format("OGZP0N77444Y42"); // Retorna: "OG.ZP0.N77/444Y-42"
Esta biblioteca também permite a validação de CPF e CNPJ utilizando a biblioteca Joi. Veja um exemplo de implementação:
import Joi from "joi";
import documentValidator from "@dmalbuquerque/cpf-cnpj-validator";
const joi = Joi.extend(documentValidator);
const schema = Joi.object({
cpf: joi.document().cpf().optional().label("CPF"),
cnpj: joi.document().cnpj().required().label("CNPJ"),
});
const resultado = schema.validate({ cpf: null, cnpj: "25143815000150" });
console.log(resultado.error ? resultado.error.details : "Dados válidos!");
Cenário | CPF | CNPJ | Resultado |
---|---|---|---|
Valor null |
✅ Aceito | ✅ Aceito | ✅ Válido |
String vazia ("" ) |
❌ CPF não pode ser vazio |
❌ CNPJ não pode ser vazio |
❌ Erro |
Campo obrigatório ausente | ❌ CPF é obrigatório |
❌ CNPJ é obrigatório |
❌ Erro |
Esta biblioteca possui testes automatizados para garantir a qualidade do código. Para rodá-los localmente, basta executar o seguinte comando:
npm run test
Isso irá rodar todos os testes definidos usando o Jest. Certifique-se de ter o Jest instalado em seu ambiente de desenvolvimento.
Se você deseja contribuir para este projeto, siga as etapas abaixo:
- Faça um fork deste repositório.
- Clone o repositório forkado para o seu ambiente local.
- Instale as dependências do projeto:
npm install
. - Faça suas alterações e testes.
- Execute os testes localmente para garantir que tudo esteja funcionando corretamente:
npm run test
- Crie uma nova branch para suas alterações:
git checkout -b minha-feature
. - Abra o PR com suas alterações.
Destribuido sob a licença MIT. © Daniel Albuquerque