From a66287cfe125b1eb5f578896566932d943ddaf64 Mon Sep 17 00:00:00 2001 From: Johann Schopplich Date: Thu, 24 Oct 2024 15:13:11 +0200 Subject: [PATCH 1/4] chore: separate build chunks for services --- build.config.ts | 16 ++++++++++++++++ src/index.ts | 16 ++++++---------- 2 files changed, 22 insertions(+), 10 deletions(-) create mode 100644 build.config.ts diff --git a/build.config.ts b/build.config.ts new file mode 100644 index 0000000..ee61367 --- /dev/null +++ b/build.config.ts @@ -0,0 +1,16 @@ +import { defineBuildConfig } from "unbuild"; + +export default defineBuildConfig({ + entries: [ + "src/index", + "src/services/mailgun", + "src/services/plunk", + "src/services/postmark", + "src/services/sendgrid", + ], + clean: false, + declaration: true, + rollup: { + emitCJS: true, + }, +}); diff --git a/src/index.ts b/src/index.ts index 2e41ab5..f7eb9b9 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,34 +1,30 @@ -import { PlunkService } from "./services/plunk"; -import { PostmarkService } from "./services/postmark"; -import { ResendService } from "./services/resend"; -import { SendGridService } from "./services/sendgrid"; -import { MailgunService } from "./services/mailgun"; import type { EmailProvider } from "./types/email-options"; import type { EmailService } from "./types/email-service"; /** * Factory function to get the email service based on the provider * @param provider - The email provider - * @returns The email service instance + * @returns A Promise that resolves to the email service instance * @throws Error if the provider is not supported */ -export function useEmail(provider: EmailProvider): EmailService { +export async function useEmail(provider: EmailProvider): Promise { switch (provider) { case "resend": { + const { ResendService } = await import("./services/resend"); return new ResendService(); } case "plunk": { + const { PlunkService } = await import("./services/plunk"); return new PlunkService(); } case "sendgrid": { + const { SendGridService } = await import("./services/sendgrid"); return new SendGridService(); } case "postmark": { + const { PostmarkService } = await import("./services/postmark"); return new PostmarkService(); } - case "mailgun": { - return MailgunService(); - } default: { throw new Error(`Unsupported email provider: ${provider}`); } From 09e9576589cfa096c97bd7dddb4af666509a75b6 Mon Sep 17 00:00:00 2001 From: Johann Schopplich Date: Thu, 24 Oct 2024 15:56:50 +0200 Subject: [PATCH 2/4] chore: add missing resend entrey --- build.config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/build.config.ts b/build.config.ts index ee61367..efd7065 100644 --- a/build.config.ts +++ b/build.config.ts @@ -6,6 +6,7 @@ export default defineBuildConfig({ "src/services/mailgun", "src/services/plunk", "src/services/postmark", + "src/services/resend", "src/services/sendgrid", ], clean: false, From 72c16cdccec002d584d01fd3729aa51081ce958b Mon Sep 17 00:00:00 2001 From: Johann Schopplich Date: Thu, 24 Oct 2024 16:02:21 +0200 Subject: [PATCH 3/4] chore: add subpath-exports --- package.json | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/package.json b/package.json index 63ac1e5..cd6dad7 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,31 @@ "types": "./dist/index.d.ts", "import": "./dist/index.mjs", "require": "./dist/index.cjs" + }, + "./mailgun": { + "types": "./dist/services/mailgun.d.ts", + "import": "./dist/services/mailgun.mjs", + "require": "./dist/services/mailgun.cjs" + }, + "./plunk": { + "types": "./dist/services/plunk.d.ts", + "import": "./dist/services/plunk.mjs", + "require": "./dist/services/plunk.cjs" + }, + "./postmark": { + "types": "./dist/services/postmark.d.ts", + "import": "./dist/services/postmark.mjs", + "require": "./dist/services/postmark.cjs" + }, + "./resend": { + "types": "./dist/services/resend.d.ts", + "import": "./dist/services/resend.mjs", + "require": "./dist/services/resend.cjs" + }, + "./sendgrid": { + "types": "./dist/services/sendgrid.d.ts", + "import": "./dist/services/sendgrid.mjs", + "require": "./dist/services/sendgrid.cjs" } }, "main": "./dist/index.cjs", From b85cd6edc733f16fdb06c0f350a7424a118cf7de Mon Sep 17 00:00:00 2001 From: Fayaz Ahmed Date: Sun, 27 Oct 2024 02:51:54 +0530 Subject: [PATCH 4/4] chore: Remove unnecessary console log --- src/services/resend.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/services/resend.ts b/src/services/resend.ts index bc144e6..ee03520 100644 --- a/src/services/resend.ts +++ b/src/services/resend.ts @@ -15,7 +15,6 @@ export class ResendService implements EmailService { } async send(emailOptions: EmailOptions): Promise { - console.log(this.apiToken); if (!this.apiToken) { throw new Error("Resend API token is missing"); }