DEV Community

Leandro Gazoli
Leandro Gazoli

Posted on

Validando CNPJ de forma definitiva: Conheça a cnpj-universal (JS/TS)

Se você trabalha com sistemas que consomem dados da Receita Federal, já sabe: o CNPJ mudou. O novo formato alfanumérico (ex: 12.ABC.345/0001-01) já é uma realidade e muitas bibliotecas de validação legadas simplesmente param de funcionar porque esperam apenas números.

Recentemente publiquei a cnpj-universal, uma biblioteca criada para ser a solução definitiva para quem precisa validar, formatar e gerar CNPJs.

Por que usar a cnpj-universal?

Diferente de implementações antigas, esta biblioteca foi construída pensando na transição. Ela valida tanto o formato clássico (numérico) quanto o novo formato alfanumérico, seguindo rigorosamente as notas técnicas da Receita Federal.

  • Híbrida: Suporta os dois formatos simultaneamente.
  • Minimalista: Zero dependências.
  • Type-safe: Feita em TypeScript para evitar erros em tempo de desenvolvimento.
  • Performance: Preparada para tree shaking.

Como usar

Instalação:

npm install cnpj-universal
Enter fullscreen mode Exit fullscreen mode

Exemplo Prático:

import { validar, formatar, gerar } from 'cnpj-universal';

// Validando um CNPJ
const isValid = validar('12.345.678/0001-00'); // true/false

// Formatando (adiciona pontos, barra e traço)
const cnpjFormatado = formatar('12345678000100'); // "12.345.678/0001-00"

// Gerando um CNPJ válido para testes
const novoCnpj = gerar(); 
Enter fullscreen mode Exit fullscreen mode

Principais Funcionalidades

  • Validação rigorosa: Algoritmo de dígitos verificadores completo.
  • Limpeza automática: Aceita strings com ou sem pontuação.
  • Suporte a ESM e CommonJS: Funciona no seu projeto legado ou no mais moderno com Next.js/Vite.

Conclusão

Se você está cansado de copiar e colar funções de validação entre projetos, dê uma chance ao cnpj-universal.

Acesse o repositório, deixe uma ⭐ e contribua:
https://www.npmjs.com/package/cnpj-universal

GitHub logo LeandroGazoli / cnpj-universal

Validação de CNPJ numérico (legado) e alfanumérico (novo formato SERPRO) para NestJS e class-validator.

CNPJ Universal ⚡

npm version npm downloads License: MIT TypeScript NestJS

Validador Type-Safe para CNPJ Numérico (Legado) e Alfanumérico (Novo Formato SERPRO).

Compatível com NestJS, class-validator e TypeScript/JavaScript puro, com suporte completo para ambos os formatos de CNPJ brasileiros.


📋 Índice


✨ Características

Validação Dual: Suporta CNPJ numérico (legado) e alfanumérico (novo formato SERPRO)
Sem Dependências Externas: Apenas class-validator como peer dependency
Type-Safe: Totalmente tipado em TypeScript
NestJS Ready: Funciona como decorator em DTOs
Flexível: Com ou sem máscara (XX.XXX.XXX/XXXX-XX)
Batch Operations: Métodos utilitários para cálculo de dígitos verificadores
Leve: ~2KB minificado
Zero Breaking Changes: API estável desde v1.0.0


🚀 Instalação

npm install cnpj-universal
Enter fullscreen mode Exit fullscreen mode

Com yarn:

yarn add cnpj-universal
Enter fullscreen mode Exit fullscreen mode

Com pnpm:

pnpm
Enter fullscreen mode Exit fullscreen mode

Top comments (0)