Dependency injection overview in AdonisJS
Dependency injection is a design pattern that eliminates manual creation and management of class dependencies. Instead, you declare dependencies as constructor or method parameters, and the AdonisJS IoC container resolves them automatically. The container is integrated into controllers, middleware, event listeners, and Ace commands. AdonisJS uses TypeScript's experimentalDecorators and emitDecoratorMetadata compiler options (pre-configured in new projects).