DI architecture using TypeScript
☑️ Hierarchical module resolution SecondModule -> FirstModule -> AppModule
☑️ MODULE_INITIALIZER
and APP_INITIALIZER
providers
☑️ Lazy injection using forwardRef
☑️ Async module imports
❎ Add support for async FactoryProvider
bindings
❎ Wait to resolve Provider
dependencies until it's being injected
❎ Documentation
❎ Unit testing
❎ Release