diff --git a/src/util/util/email/clients/MailGunEmailClient.ts b/src/util/util/email/clients/MailGunEmailClient.ts index d0a1613..ad92fc8 100644 --- a/src/util/util/email/clients/MailGunEmailClient.ts +++ b/src/util/util/email/clients/MailGunEmailClient.ts @@ -34,7 +34,7 @@ try { // try to import the transporter package - this.mailGun = new (await import("mailgun.js")).default(FormData); + this.mailGun = new (require("mailgun.js").default)(FormData); } catch { // if the package is not installed, log an error and return void so we don't set the transporter console.error("[Email] MailGun transport is not installed. Please run `npm install mailgun.js --save-optional` to install it."); diff --git a/src/util/util/email/clients/MailJetEmailClient.ts b/src/util/util/email/clients/MailJetEmailClient.ts index 45664eb..d88346f 100644 --- a/src/util/util/email/clients/MailJetEmailClient.ts +++ b/src/util/util/email/clients/MailJetEmailClient.ts @@ -39,7 +39,7 @@ }); } catch { // if the package is not installed, log an error and return void so we don't set the transporter - console.error("[Email] MailJet transport is not installed. Please run `npm install node-mailjet --save-optional` to install it."); + console.error("[Email] MailJet transport is not installed. Please run `npm install --no-save node-mailjet` to install it."); return; } } diff --git a/src/util/util/email/clients/SMTPEmailClient.ts b/src/util/util/email/clients/SMTPEmailClient.ts index 46bfe0f..b845248 100644 --- a/src/util/util/email/clients/SMTPEmailClient.ts +++ b/src/util/util/email/clients/SMTPEmailClient.ts @@ -20,16 +20,17 @@ import { Config } from "@spacebar/util"; export class SMTPEmailClient extends BaseEmailClient { - // sendGrid?: unknown; - nodemailer?: typeof import("nodemailer"); - transporter: import("nodemailer").Transporter; + nodemailer?: unknown; + transporter: unknown; + // nodemailer?: typeof import("nodemailer"); // for dev + // transporter: import("nodemailer").Transporter; // for dev override async init(): Promise { try { // try to import the transporter package - this.nodemailer = (await import("nodemailer")).default; + this.nodemailer = require("nodemailer").default; } catch { // if the package is not installed, log an error and return void so we don't set the transporter - console.error("[Email] nodemailer is not installed. Please run `npm install nodemailer --save-optional` to install it."); + console.error("[Email] nodemailer is not installed. Please run `npm install --no-save nodemailer` to install it."); return; } // get configuration @@ -44,6 +45,8 @@ ); // construct the transporter + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-expect-error const transporter = this.nodemailer.createTransport({ host, port, @@ -55,7 +58,7 @@ }); // verify connection configuration - const verified = await transporter.verify().catch((err) => { + const verified = await transporter.verify().catch((err: unknown) => { console.error("[Email] SMTP verification failed:", err); return; }); @@ -70,6 +73,8 @@ if (!this.nodemailer) throw new Error("nodemailer not initialized"); if (!this.transporter) throw new Error("nodemailer transporter not initialized"); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-expect-error await this.transporter.sendMail({ to: email.to, from: email.from, diff --git a/src/util/util/email/clients/SendGridEmailClient.ts b/src/util/util/email/clients/SendGridEmailClient.ts index 8eb3fae..36f077d 100644 --- a/src/util/util/email/clients/SendGridEmailClient.ts +++ b/src/util/util/email/clients/SendGridEmailClient.ts @@ -31,10 +31,10 @@ try { // try to import the transporter package - this.sendGrid = (await import("@sendgrid/mail")).default; + this.sendGrid = require("@sendgrid/mail").default; } catch { // if the package is not installed, log an error and return void so we don't set the transporter - console.error("[Email] SendGrid transport is not installed. Please run `npm install @sendgrid/mail --save-optional` to install it."); + console.error("[Email] SendGrid transport is not installed. Please run `npm install --no-save @sendgrid/mail` to install it."); return; }