The project relies on a minimal set of dependencies to ensure lightweight and efficient execution:
Development dependencies include Jest for testing, TypeDoc for documentation, and ESLint/Prettier for code quality.
The project uses Jest as the primary testing framework.
tests/ directory (e.g., e2e.spec.ts).src/Domain/ValueObjects/Pokemon.spec.ts).Tracing is implemented via a custom TracingMiddleware.
src/Infrastructure/Http/Middlewares/TracingMiddleware.tsAsyncLocalStorage to store and propagate a correlation ID for each request.The project follows Clean Architecture principles to separate concerns into distinct layers:
src/Domain/: Contains the core business logic, entities, and repository interfaces (Ports). usage of this layer is independent of any external agency.src/Application/: Contains the application logic and use cases (Queries and Commands). It orchestrates the flow of data between the Domain and Infrastructure layers.src/Infrastructure/: Contains the implementation of the interfaces defined in the Domain layer (Adapters). This includes database repositories, external API clients, and the HTTP server setup.