Skip to content

Opinionated way to manage your NestJS dependency injection

License

Notifications You must be signed in to change notification settings

vassourita/nestjs-provider-helper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NestJS Provider Helper

This helper creates a provider structure for NestJS modules in a opinionated way, where every provider must be a implementation of a interface

The ProviderHelper class exposes static methods to create ClassProviders, FactoryProviders, ExistingProviders and ValueProviders

Installing

npm install nestjs-provider-helper
# or
yarn add nestjs-provider-helper

ClassProvider example

@Module({
  controllers: [CatsController],
  providers: [
    ProviderHelper.createClassProvider<ICatService, CatService>('ICatService', CatService),
    ProviderHelper.createClassProvider<ICatRepository, TypeormCatRepository>('ICatRepository', CatRepository),
  ],
})
export class CatsModule {}

FactoryProvider example

@Module({
  controllers: [CatsController],
  providers: [
    ProviderHelper.createClassProvider<ICatRepository, TypeormCatRepository>('ICatRepository', CatRepository),
    ProviderHelper.createFactoryProvider<ICatService, CatService>(
      'ICatService',
      (ICatRepository: catRepository) => new CatService(catRepository),
      ['ICatRepository']
    ),
  ],
})
export class CatsModule {}