import { renderAccountDeleteEmail, renderInviteEmail, renderOtpEmail, } from '@kit/email-templates'; export async function loadEmailTemplate(id: string) { switch (id) { case 'account-delete-email': return renderAccountDeleteEmail({ productName: 'Makerkit', userDisplayName: 'Giancarlo', }); case 'invite-email': return renderInviteEmail({ teamName: 'Makerkit', teamLogo: '', inviter: 'Giancarlo', invitedUserEmail: 'test@makerkit.dev', link: 'https://makerkit.dev', productName: 'Makerkit', }); case 'otp-email': return renderOtpEmail({ productName: 'Makerkit', otp: '123456', }); case 'magic-link-email': return loadFromFileSystem('magic-link'); case 'reset-password-email': return loadFromFileSystem('reset-password'); case 'change-email-address-email': return loadFromFileSystem('change-email-address'); case 'confirm-email': return loadFromFileSystem('confirm-email'); default: throw new Error(`Email template not found: ${id}`); } } async function loadFromFileSystem(fileName: string) { const { readFileSync } = await import('node:fs'); const { join } = await import('node:path'); const filePath = join( process.cwd(), `../web/supabase/templates/${fileName}.html`, ); return { html: readFileSync(filePath, 'utf8'), }; }