1.0.0 • Published 8 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
8 months ago