What problem does it solve?
Inversify dependency injection can become inconsistent and hard to test when service identifiers, bindings, scopes, and overrides are scattered across the codebase.
Core Features & Use Cases
- Central TYPES Registry: Defines a consistent Symbol-based service identifier map for server dependencies.
- Inline Container Bindings: Documents how the server binds core services directly in the container without ContainerModule, including singleton scopes.
- Constructor Injection with Optional Dependencies: Shows a practical injectable service pattern using @injectable() and @inject(), including optional settings injection.
- Testing-Friendly Overrides: Provides an approach for swapping bindings in a test container via container.rebindSync-style calls (and notes v8 changes).
- Migration Guidance for Inversify v8: Calls out breaking API changes relevant to this project's current test container setup.
Quick Start
Use this guidance when updating apps/server/src/container.ts and apps/server/src/types.ts, especially if you are adding a new injectable service, changing binding scopes, or adjusting test-time dependency overrides.