toll-bck-node-core
TypeScript icon, indicating that this package has built-in type declarations

2.0.4 • Public • Published

TollBckNode

TypeScript Node.js Express.js Clean Architecture License: MIT

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

  1. Copie o arquivo .env.example para .env:
cp .env.example .env
  1. 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 desenvolvimento
  • npm run build: Compila o projeto
  • npm start: Inicia o servidor em produção
  • npm test: Executa os testes
  • npm run lint: Verifica o código
  • npm 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

  1. Independência de Frameworks

    • Frameworks são detalhes
    • O domínio não conhece frameworks
  2. Testabilidade

    • Testes independentes de infraestrutura
    • Mocks e stubs facilitados
  3. Independência de UI

    • Interface é um detalhe
    • Mudanças na UI não afetam o domínio
  4. 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
  5. 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

  1. Fork o projeto
  2. Crie sua branch (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

📄 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

📞 Suporte

🎯 Roadmap

  • [ ] Suporte a GraphQL
  • [ ] Autenticação JWT
  • [ ] Cache distribuído
  • [ ] Documentação Swagger
  • [ ] Docker compose
  • [ ] CI/CD Pipeline

⭐ Agradecimentos

Package Sidebar

Install

npm i toll-bck-node-core

Weekly Downloads

46

Version

2.0.4

License

MIT

Unpacked Size

49.5 kB

Total Files

64

Last publish

Collaborators

  • amarorn