Hasty Briefsbeta

Chibi Izumi: Phased dependency injection for TypeScript

22 days ago
  • #scala
  • #typescript
  • #dependency-injection
  • TypeScript re-implementation of Scala's Izumi Project distage library for staged dependency injection.
  • Features include fluent DSL for DI modules, type-safe bindings, @Reflected decorator for automatic dependency resolution, and async support with parallel execution.
  • Supports multiple binding types, axis tagging for conditional bindings, lifecycle management, and fail-fast validation.
  • Comparison table shows izumi-chibi-ts supports all listed features unlike other libraries like InversifyJS, TSyringe, etc.
  • Example usage demonstrates defining classes with @Reflected, creating modules, and producing instances with Injector.
  • Advanced features include Functoid for type-safe factories, @Id for named dependencies, set bindings, and axis-based activation.
  • Lifecycle management for resources and separation of planning/production phases.
  • Error detection for circular/missing dependencies and conflicting bindings.
  • Module combination/override capabilities and both sync/async production methods.
  • Project status: not battle-tested, MIT licensed, with sibling project izumi-chibi-py.