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