Custom Providers
NestJS 🟡 MidDefinition
Providers definis avec useClass, useValue, useFactory ou useExisting pour un controle total sur ce qui est injecte. Permet l'injection de valeurs non-classes.
Analogie
Comme choisir entre acheter un meuble en kit, le faire sur mesure ou recycler un ancien meuble.
Exemple de code
providers: [
{ provide: 'API_KEY', useValue: process.env.API_KEY },
{ provide: Logger, useClass: ProdLogger },
{ provide: 'DB', useFactory: (cfg: ConfigService) =>
createConnection(cfg.get('DB_URL')),
inject: [ConfigService],
},
]
Cas d'usage
Injecter des variables d'environnement, des connexions dynamiques ou des implementations alternatives.
Anti-pattern
Acceder directement a process.env dans les services au lieu d'injecter la configuration.