- Install local dependencies:
npm install
- Tests run with sufix unit or integration depending on what will be tested:
npm test:unit
npm test:integration
Script | Description |
---|---|
npm run start |
Run production server |
npm run debug |
Run dev server |
npm run build |
Generates production build |
npm run build:watch |
Run unit tests in watch mode |
npm run up |
Run container with development env |
npm run down |
Stop containers |
npm run test |
Run all tests |
npm run test:unit |
Run unit tests |
npm run test:integration |
Run integration tests |
npm run test:staged |
Run unit and integration tests once (great to be used in CI) |
npm run test:ci |
Run Covererage test (great to be used in CD) |
npm run test:coveralls |
Run coveralls to publish coverage |
This project uses Clean Architecture and some ideas from Domain Driven Desing with Object Oriented Programming.
.
├── src
│ ├── data
│ │ ├── protocols
│ │ └── usecases
│ ├── domain
│ │ ├── models
│ │ └── usecases
│ ├── infra
│ │ ├── cryptography
│ │ ├── db
│ │ └── validators
│ ├── main
│ │ ├── adapters
│ │ ├── config
│ │ ├── factories
│ │ │ └── controllers
│ │ └── server.ts
│ ├── presentation
│ └── validation
├── tests
├── jest-integration-config.js
├── jest-unit-config.js
└── jest.config.js
Directory / File | Description |
---|---|
src |
All source code write in TypeScript must be in this directory |
tests |
All test files must be in this directory |
src/main/server.ts |
Main entry point for initial configuration of the project. Do not edit this file. Start with src/app.ts . |
src/main/config/env.ts |
List of Environment Variables. |
jest-integration-config.js |
Jest configuration file for integration tests |
jest-unit-config.js |
Jest configuration file for unit tests |
jest.config.js |
Main Jest configuration file |
From Clean Architecture recommendations, there is a layer order to develop. The rule is:
- Domain
- 1.1 models
- 1.2 usecases
- Data
- 2.1 usecases
- 2.2 protocols
- Infra
- 3.1 db repositories
- 3.2 criptography / validators
- Presentation
- 4.1 controllers
- Validation
- Main
- 6.1 routes
- 6.2 factories controllers
- 6.3 factories usecases
- 6.4 adapters
- 6.4 config
Just put all your env vars on file src/main/config/env.ts
.
All files and dirs inside src
directory can be imported using @/
.
Prefer using this way over local import (../../
).
MIT