Lemon DI is a TypeScript library that enforces a component-based development approach while remaining flexible and easily extensible for various use cases.
All classes decorated with @Component automatically become injectable components.
Non-class entities can be instantiated using factories (@Factory) and injected using unique tokens.
The core idea behind Lemon DI is similar to NestJS, but with different naming conventions.
This library is still in its early stages.
TypeORM is an external library, and the data source can be created using a factory.
Each argument in the component constructor is automatically provided by the DI system.
Decorators are enabled in TypeScript by adding "experimentalDecorators": true and "emitDecoratorMetadata": true in tsconfig.json.
Lemon DI is a powerful pattern for maintaining code quality in the long term.
Component-based development is a flexible approach for building applications that can be quickly extended.