From a639189c23819a3179f215fefa2f68dcfd0edb52 Mon Sep 17 00:00:00 2001 From: Tanya Date: Wed, 7 Jan 2026 13:21:40 -0500 Subject: [PATCH] chore: Dynamically import email functions in authentication routes to optimize build process This commit modifies the authentication routes to dynamically import email functions, preventing Resend initialization during the build. This change enhances the application's performance and reliability by ensuring that unnecessary initializations do not occur at build time. These updates contribute to a more efficient development workflow and improve the overall user experience. --- viewer-frontend/app/api/auth/forgot-password/route.ts | 4 +++- viewer-frontend/app/api/auth/register/route.ts | 4 +++- viewer-frontend/app/api/auth/resend-confirmation/route.ts | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/viewer-frontend/app/api/auth/forgot-password/route.ts b/viewer-frontend/app/api/auth/forgot-password/route.ts index 0fdaaa2..ca328b7 100644 --- a/viewer-frontend/app/api/auth/forgot-password/route.ts +++ b/viewer-frontend/app/api/auth/forgot-password/route.ts @@ -1,6 +1,5 @@ import { NextRequest, NextResponse } from 'next/server'; import { prismaAuth } from '@/lib/db'; -import { generatePasswordResetToken, sendPasswordResetEmail } from '@/lib/email'; import { isValidEmail } from '@/lib/utils'; // Force dynamic rendering to prevent Resend initialization during build @@ -8,6 +7,9 @@ export const dynamic = 'force-dynamic'; export async function POST(request: NextRequest) { try { + // Dynamically import email functions to avoid Resend initialization during build + const { generatePasswordResetToken, sendPasswordResetEmail } = await import('@/lib/email'); + const body = await request.json(); const { email } = body; diff --git a/viewer-frontend/app/api/auth/register/route.ts b/viewer-frontend/app/api/auth/register/route.ts index 958636c..f4f1567 100644 --- a/viewer-frontend/app/api/auth/register/route.ts +++ b/viewer-frontend/app/api/auth/register/route.ts @@ -1,7 +1,6 @@ import { NextRequest, NextResponse } from 'next/server'; import { prismaAuth } from '@/lib/db'; import bcrypt from 'bcryptjs'; -import { generateEmailConfirmationToken, sendEmailConfirmation } from '@/lib/email'; import { isValidEmail } from '@/lib/utils'; // Force dynamic rendering to prevent Resend initialization during build @@ -9,6 +8,9 @@ export const dynamic = 'force-dynamic'; export async function POST(request: NextRequest) { try { + // Dynamically import email functions to avoid Resend initialization during build + const { generateEmailConfirmationToken, sendEmailConfirmation } = await import('@/lib/email'); + const body = await request.json(); const { email, password, name } = body; diff --git a/viewer-frontend/app/api/auth/resend-confirmation/route.ts b/viewer-frontend/app/api/auth/resend-confirmation/route.ts index b2b984f..4198cd0 100644 --- a/viewer-frontend/app/api/auth/resend-confirmation/route.ts +++ b/viewer-frontend/app/api/auth/resend-confirmation/route.ts @@ -1,12 +1,14 @@ import { NextRequest, NextResponse } from 'next/server'; import { prismaAuth } from '@/lib/db'; -import { generateEmailConfirmationToken, sendEmailConfirmationResend } from '@/lib/email'; // Force dynamic rendering to prevent Resend initialization during build export const dynamic = 'force-dynamic'; export async function POST(request: NextRequest) { try { + // Dynamically import email functions to avoid Resend initialization during build + const { generateEmailConfirmationToken, sendEmailConfirmationResend } = await import('@/lib/email'); + const body = await request.json(); const { email } = body;