UNPKG

@softkit/mail

Version:

The Mailgun Mail Module is a comprehensive solution for integrating Mailgun's email functionality into NestJS applications. It provides a seamless way to send emails using Mailgun with minimal setup and configuration.

73 lines 2.86 kB
"use strict"; var MailgunMailModule_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.MailgunMailModule = void 0; const tslib_1 = require("tslib"); const common_1 = require("@nestjs/common"); const services_1 = require("../../services"); const constants_1 = require("../../constants"); const services_2 = require("../../services"); const form_data_1 = tslib_1.__importDefault(require("form-data")); let MailgunMailModule = MailgunMailModule_1 = class MailgunMailModule { static forRoot(mailConfig, global = true) { const mailProvider = { provide: constants_1.MAILGUN_CONFIG_TOKEN, useValue: mailConfig, }; const defaultProvidersAndExports = this.createDefaultProvidersAndExports(); if (defaultProvidersAndExports.providers) { defaultProvidersAndExports.providers.push(mailProvider); } return { global, ...defaultProvidersAndExports, }; } static forRootAsync(options, global = true) { const defaultProvidersAndExports = this.createDefaultProvidersAndExports(); const asyncConfigProvider = this.createAsyncProvider(options); const providers = [ asyncConfigProvider, ...(defaultProvidersAndExports.providers || []), ]; return { global, module: MailgunMailModule_1, imports: options.imports || [], providers, exports: [...(defaultProvidersAndExports.exports || [])], }; } static createDefaultProvidersAndExports() { return { module: MailgunMailModule_1, providers: [ { provide: services_1.AbstractMailService, useClass: services_2.MailgunService, }, { provide: constants_1.MAILGUN_CLIENT_TOKEN, useFactory: async (authCredentials) => { const Mailgun = await Promise.resolve().then(() => tslib_1.__importStar(require('mailgun.js'))); return new Mailgun.default(form_data_1.default).client(authCredentials); }, inject: [constants_1.MAILGUN_CONFIG_TOKEN], }, ], exports: [services_1.AbstractMailService, constants_1.MAILGUN_CLIENT_TOKEN], }; } }; exports.MailgunMailModule = MailgunMailModule; MailgunMailModule.createAsyncProvider = (options) => { return { provide: constants_1.MAILGUN_CONFIG_TOKEN, useFactory: options.useFactory, inject: options.inject, }; }; exports.MailgunMailModule = MailgunMailModule = MailgunMailModule_1 = tslib_1.__decorate([ (0, common_1.Module)({}) ], MailgunMailModule); //# sourceMappingURL=mail.module.js.map