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
npm install nestjs-provider-helper
# or
yarn add nestjs-provider-helper
@Module({
controllers: [CatsController],
providers: [
ProviderHelper.createClassProvider<ICatService, CatService>('ICatService', CatService),
ProviderHelper.createClassProvider<ICatRepository, TypeormCatRepository>('ICatRepository', CatRepository),
],
})
export class CatsModule {}
@Module({
controllers: [CatsController],
providers: [
ProviderHelper.createClassProvider<ICatRepository, TypeormCatRepository>('ICatRepository', CatRepository),
ProviderHelper.createFactoryProvider<ICatService, CatService>(
'ICatService',
(ICatRepository: catRepository) => new CatService(catRepository),
['ICatRepository']
),
],
})
export class CatsModule {}