🚀 Valide documentos brasileiros (CPF e CNPJ) no NestJS/TypeScript de forma simples, nativa e sem dependências extras.
Instalação • Uso no TypeScript • Exemplos no NestJS • API e Decorators • Testes • Roadmap • Contribuindo • Contribuindo
npm install @sh4rkzy/brazilian-validator class-validator class-transformer
ou
yarn add @sh4rkzy/brazilian-validator class-validator class-transformer
A biblioteca é totalmente compatível com TypeScript e pode ser usada sem NestJS.
import 'reflect-metadata';
import { validate } from 'class-validator';
import { IsCPF, IsCNPJ } from '@sh4rkzy/brazilian-validator';
class User {
@IsCPF({ message: 'CPF inválido' })
cpf!: string;
@IsCNPJ({ message: 'CNPJ inválido' })
cnpj!: string;
}
async function run() {
const user = new User();
user.cpf = '12345678900'; // inválido
user.cnpj = '11222333000181'; // válido
const errors = await validate(user);
console.log(errors);
}
run();
Também é possível usar funções utilitárias diretamente:
import { validateCpfDigit, validateCnpjDigit } from '@sh4rkzy/brazilian-validator';
console.log(validateCpfDigit('111.444.777-35')); // true
console.log(validateCnpjDigit('11.222.333/0001-81')); // true
import { IsCPF } from '@sh4rkzy/brazilian-validator';
import { Body, Controller, Post } from '@nestjs/common';
class CreateUserDto {
@IsCPF()
cpf!: string;
}
@Controller('users')
export class UsersController {
@Post()
create(@Body() body: CreateUserDto) {
return body;
}
}
import { ValidationPipe } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.useGlobalPipes(new ValidationPipe());
await app.listen(3000);
}
bootstrap();
validateCpfDigit(cpf: string): boolean
validateCnpjDigit(cnpj: string): boolean
@IsCPF(options?)
@IsCNPJ(options?)
Opções dos decorators:
class Company {
@IsCPF()
responsibleCpf!: string;
@IsCPF({ lengthOnly: true })
backupCpf!: string;
@IsCNPJ({ message: 'CNPJ da empresa inválido' })
companyCnpj!: string;
}
Este projeto possui 100% de cobertura de testes com Poku.
npm test
npm run test:watch
npm run lint
Contribuições são bem-vindas! Veja como contribuir:
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature
) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature'
) - Push para a branch (
git push origin feature/AmazingFeature
) - Abra um Pull Request
# Clone o repositório
git clone https://github.com/sh4rkzy/brazilian-validator.git
# Instale as dependências
npm install
# Execute os testes
npm test
# Execute o build
npm run build
- ✅ v0.0.1 - Core CPF/CNPJ validation
- ✅ v0.0.2 - TypeScript decorators
- ✅ v0.0.4 - Complete test suite
- 🔄 v0.1.0 - RG validation
- 🔄 v0.2.0 - CEP validation
- 🔄 v0.3.0 - Título de Eleitor validation
- 🔄 v0.4.0 - React Hook Form integration
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
- 🐛 Issues: GitHub Issues
- 💬 Discussões: GitHub Discussions
Feito com ❤️ para a comunidade
⭐ Se este projeto foi útil, considere dar uma estrela no GitHub!