🏡K
Size: a a a
🏡K
DT
return {
module: EmailLibraryModule,
imports: [
MailerModule.forRootAsync({
useFactory: (...args) => {
console.log({ args });
// const smtpURL = configService.get(['core', 'SMTP_URL']) as string;
const smtpURL = null;
return {
//todo: add transport from env
transport: `smtp://${encodeURI(acc.user)}:${acc.pass}@${acc.smtp.host}:${acc.smtp.port}` ?? smtpURL,
};
},
}),
],
providers: [emailOptionsProvider, emailServiceProvider],
exports: [emailServiceProvider],
};🏡K
DT
DT
🏡K
🏡K
🏡K
DT
🏡K
return {
module: EmailLibraryModule,
imports: [
MailerModule.forRootAsync({
useFactory: (configService:ConfigService) => {
// console.log({ args });
// const smtpURL = configService.get(['core', 'SMTP_URL']) as string;
const smtpURL = null;
return {
//todo: add transport from env
transport: `smtp://${encodeURI(acc.user)}:${acc.pass}@${acc.smtp.host}:${acc.smtp.port}` ?? smtpURL,
};
},
inject: [ConfigService],
}),
],
providers: [emailOptionsProvider, emailServiceProvider],
exports: [emailServiceProvider],
};DT
EmailLibraryModule.forRootAsync({
useFactory: (configService: ConfigService): { senderEmail: string; smtpURL: string } => ({
senderEmail: configService.get(['core', 'EMAIL_SENDER']) as string,
smtpURL: configService.get(['core', 'SMTP_URL']) as string,
}),
inject: [ConfigService],
}),@Module({})
export class EmailLibraryModule {
static async forRootAsync(options: {
useFactory: (...args: any[]) => { senderEmail: string; smtpURL: string };
inject?: any[];
}): Promise<DynamicModule> {DT
🏡K
DT
🏡K
🏡K
🏡K
DT
DT
console.log(options.inject);
const result = await options.useFactory(...options.inject);
console.log({ result });
🏡K