1.0.0 • Published 7 months ago
@amarorn/toll-bck-node-core-2 v1.0.0
TollBckNode
Template para configuração padronizada de ambiente de desenvolvimento Node.js seguindo os princípios da Clean Architecture.
🏗️ Arquitetura
O projeto segue a Clean Architecture, dividida em camadas:
src/
├── application/          # Regras de Negócio da Aplicação
│   ├── useCases/        # Casos de uso (regras de negócio)
│   ├── dto/             # Objetos de transferência de dados
│   └── interfaces/      # Contratos dos casos de uso
│
├── domain/              # Regras de Negócio da Empresa
│   ├── entities/        # Entidades do domínio
│   ├── interfaces/      # Contratos do domínio
│   ├── valueObjects/    # Objetos de valor
│   └── enums/          # Enumeradores
│
├── infrastructure/      # Frameworks e Ferramentas
│   ├── models/          # Modelos de persistência
│   ├── repositories/    # Implementações dos repositórios
│   ├── services/        # Serviços externos
│   └── database/        # Configurações do banco
│
├── interface/           # Adaptadores de Interface
│   ├── controllers/     # Controladores da API
│   ├── routes/          # Rotas da API
│   ├── middlewares/     # Middlewares Express
│   └── validators/      # Validações de entrada
│
└── shared/              # Código Compartilhado
    ├── errors/          # Erros customizados
    ├── utils/           # Funções utilitárias
    ├── types/           # Tipos compartilhados
    ├── constants/       # Constantes compartilhadas
    └── validators/      # Validadores comuns🚀 Funcionalidades
- ✅ Estrutura Clean Architecture
 - ✅ TypeScript
 - ✅ Express.js configurado
 - ✅ Persistência de dados agnóstica
 - ✅ Validações de entrada
 - ✅ Tratamento de erros
 - ✅ Logging
 - ✅ Middlewares de segurança
 - ✅ Documentação automática
 
📦 Instalação
# Instalar a lib
npm install toll-bck-node
# Ou usando yarn
yarn add toll-bck-node🛠️ Configuração
- Copie o arquivo 
.env.examplepara.env: 
cp .env.example .env- Configure as variáveis de ambiente:
 
# Servidor
PORT=3000
NODE_ENV=development
# Banco de dados (exemplo)
DB_TYPE=postgres
DB_HOST=localhost
DB_PORT=5432
DB_NAME=toll_db
DB_USER=user
DB_PASS=pass🏃♂️ Executando
# Desenvolvimento
npm run dev
# Produção
npm run build
npm start📚 Scripts Disponíveis
npm run dev: Inicia o servidor em modo desenvolvimentonpm run build: Compila o projetonpm start: Inicia o servidor em produçãonpm test: Executa os testesnpm run lint: Verifica o códigonpm run format: Formata o código
🧪 Testes
# Executar testes
npm test
# Cobertura
npm run test:coverage📝 Documentação
A documentação é gerada automaticamente usando TypeDoc:
npm run docs🏛️ Princípios Arquiteturais
Independência de Frameworks
- Frameworks são detalhes
 - O domínio não conhece frameworks
 
Testabilidade
- Testes independentes de infraestrutura
 - Mocks e stubs facilitados
 
Independência de UI
- Interface é um detalhe
 - Mudanças na UI não afetam o domínio
 
Independência de Banco de Dados
- Banco de dados é um detalhe
 - Fácil trocar implementações
 - Suporte a múltiplos tipos de banco de dados
 
Independência de Externos
- APIs externas são detalhes
 - Adaptadores isolam o domínio
 
🔒 Segurança
- Helmet para headers seguros
 - CORS configurável
 - Validação de entrada
 - Sanitização de dados
 - Rate limiting
 - Proteção contra ataques comuns
 
🤝 Contribuindo
- Fork o projeto
 - Crie sua branch (
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
 
📄 Licença
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
📞 Suporte
- Documentação: Link para docs
 - Issues: Link para issues
 - Email: seu-email@exemplo.com
 
🎯 Roadmap
- Suporte a GraphQL
 - Autenticação JWT
 - Cache distribuído
 - Documentação Swagger
 - Docker compose
 - CI/CD Pipeline
 
⭐ Agradecimentos
1.0.0
7 months ago