@sh4rkzy/brazilian-validator
v0.0.9
Published
A Brazilian document validator library for CPF validation with TypeScript support
Maintainers
Readme
🇧🇷 Brazilian Validator
🚀 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
📦 Instalação
npm install @sh4rkzy/brazilian-validator class-validator class-transformerou
yarn add @sh4rkzy/brazilian-validator class-validator class-transformer🟦 Uso no TypeScript
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🛠️ Exemplos no NestJS
DTO de criação de usuário
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;
}
}Configurando ValidationPipe no main.ts
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();🎯 API e Decorators
Funções utilitárias
validateCpfDigit(cpf: string): booleanvalidateCnpjDigit(cnpj: string): boolean
Decorators disponíveis
@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;
}🧪 Testes
Este projeto possui 100% de cobertura de testes com Poku.
Executar testes
npm testExecutar testes em modo watch
npm run test:watchExecutar linting
npm run lint🤝 Contribuindo
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
Desenvolvimento local
# 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🛣️ Roadmap
- [x] ✅ v0.0.1 - Core CPF/CNPJ validation
- [x] ✅ v0.0.2 - TypeScript decorators
- [x] ✅ 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
📄 Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
🔗 Links Úteis
📞 Suporte
- 🐛 Issues: GitHub Issues
- 💬 Discussões: GitHub Discussions
Feito com ❤️ para a comunidade
⭐ Se este projeto foi útil, considere dar uma estrela no GitHub!
