* Add react-email * WIP * Fix import error * Rename services * Update logging * Update email template * Update email template * Add Base Email template * Move to proper place * Remove test files * Update logo * Add email theme * Revert "Remove test files" This reverts commit fe062dd05166b95125cf99f2165cc20efb6c275a. * Add email theme 2 * Revert "Revert "Remove test files"" This reverts commit 6c6471273ad765788f2eaf5a5614209edfb965ce. * Revert "Revert "Revert "Remove test files""" This reverts commit f851333c24e9cfe3f425c9cbbd1e079efce5c3dd. * Revert "Revert "Revert "Revert "Remove test files"""" This reverts commit 7838e19e88e269026e24803f26cd52b467b4ef36. * Fix theme
31 lines
1.0 KiB
TypeScript
31 lines
1.0 KiB
TypeScript
import { DynamicModule, Global } from '@nestjs/common';
|
|
|
|
import { EmailModuleAsyncOptions } from 'src/integrations/email/interfaces/email.interface';
|
|
|
|
import { EMAIL_DRIVER } from 'src/integrations/email/email.constants';
|
|
import { LoggerDriver } from 'src/integrations/email/drivers/logger.driver';
|
|
import { SmtpDriver } from 'src/integrations/email/drivers/smtp.driver';
|
|
import { EmailService } from 'src/integrations/email/email.service';
|
|
import { EmailSenderService } from 'src/integrations/email/email-sender.service';
|
|
|
|
@Global()
|
|
export class EmailModule {
|
|
static forRoot(options: EmailModuleAsyncOptions): DynamicModule {
|
|
const provider = {
|
|
provide: EMAIL_DRIVER,
|
|
useFactory: (...args: any[]) => {
|
|
const config = options.useFactory(...args);
|
|
|
|
return config ? new SmtpDriver(config) : new LoggerDriver();
|
|
},
|
|
inject: options.inject || [],
|
|
};
|
|
|
|
return {
|
|
module: EmailModule,
|
|
providers: [EmailSenderService, EmailService, provider],
|
|
exports: [EmailSenderService, EmailService],
|
|
};
|
|
}
|
|
}
|