Skip to content

AdonisJS (starting from V6)

View complete AdonisRC file

shell
node ace inspect:rcfile

Dependency Injection

Contextual dependencies

From official Documentation

ts
import { Disk } from '@adonisjs/drive';
import UserService from '#services/user_service';
import PostService from '#services/post_service';
import { ApplicationService } from '@adonisjs/core/types';

export default class AppProvider {
  constructor(protected app: ApplicationService) {}

  register() {
    this.app.container
      .when(UserService)
      .asksFor(Disk)
      .provide(async (resolver) => {
        const driveManager = await resolver.make('drive');
        return drive.use('gcs');
      });
    this.app.container
      .when(PostService)
      .asksFor(Disk)
      .provide(async (resolver) => {
        const driveManager = await resolver.make('drive');
        return drive.use('s3');
      });
  }
}