diff --git a/Dockerfile b/Dockerfile index f8b9bb7..60ecd71 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ WORKDIR /app # Install dependencies FROM base AS install -COPY package.json bun.lockb ./ +COPY package.json bun.lock ./ RUN bun install --frozen-lockfile --production # Production image diff --git a/src/services/email.ts b/src/services/email.ts index 664fedd..cc1cd6a 100644 --- a/src/services/email.ts +++ b/src/services/email.ts @@ -1,6 +1,17 @@ import { Resend } from 'resend'; -const resend = new Resend(process.env.RESEND_API_KEY); +let resend: Resend | null = null; + +function getResendClient(): Resend { + if (!resend) { + const apiKey = process.env.RESEND_API_KEY; + if (!apiKey) { + throw new Error('RESEND_API_KEY is not configured'); + } + resend = new Resend(apiKey); + } + return resend; +} export interface SendEmailParams { to: string; @@ -11,7 +22,8 @@ export interface SendEmailParams { } export async function sendEmail(params: SendEmailParams) { - const { data, error } = await resend.emails.send({ + const client = getResendClient(); + const { data, error } = await client.emails.send({ from: params.from || process.env.DEFAULT_FROM_EMAIL || 'onboarding@resend.dev', to: params.to, subject: params.subject,