You have to import the @inject decorator everywhere, which ends up polluting your domain code.
Writing the boilerplate dependency binding code was so repetitive that I wished I could just type a single command — “arise” — and have it done automatically.
So I decided to create my own DI container, coupled with a CLI that performs AST-based code analysis and generates all the registration boilerplate for you.
Some of the features:
• No decorators and no vendor lock-in. • Supports injecting typed objects, factory functions, and classes implementing interfaces or inheriting abstract classes. • Multiple lifecycles (singleton and transient). The CLI detects them using JS comments like “@scope singleton” or “@scope transient.” • Factory functions and value objects are detected via JSDoc annotations like “@factory” or “@value.”
You can learn more here: https://ioc-arise.notjustcoders.com/