Dynamic Module
NestJS 🟡 MidDefinition
Module configurable via une methode statique (forRoot/forRootAsync) qui retourne un DynamicModule. Permet de passer des options de configuration a l'import.
Analogie
Comme un abonnement telephonique : le meme operateur mais tu choisis ton forfait (options) a la souscription.
Exemple de code
@Module({})
export class MailModule {
static forRoot(config: MailConfig): DynamicModule {
return {
module: MailModule,
providers: [{ provide: 'MAIL_CONFIG', useValue: config }, MailService],
exports: [MailService],
};
}
}
Cas d'usage
Creer des modules reutilisables comme les modules de config, cache ou mail avec des parametres variables.
Anti-pattern
Hardcoder la configuration directement dans le module au lieu de la rendre injectable.