because I got bored of customising my CV for every job
1import { type DynamicModule, Module } from "@nestjs/common";
2import { MAIL_SERVICE_TOKEN, type MailService } from "./mail.service.interface";
3
4export interface MailModuleOptions {
5 provider: new (...args: unknown[]) => MailService;
6}
7
8@Module({})
9export class MailModule {
10 static forRoot(options: MailModuleOptions): DynamicModule {
11 return {
12 module: MailModule,
13 providers: [
14 {
15 provide: MAIL_SERVICE_TOKEN,
16 useClass: options.provider,
17 },
18 ],
19 exports: [MAIL_SERVICE_TOKEN],
20 global: true,
21 };
22 }
23}