import { logger } from "@turbostarter/shared/logger"; import { send } from "./providers"; import { getTemplate } from "./templates"; import type { EmailTemplate, EmailVariables } from "./types"; const sendEmail = async ({ to, template, locale, variables, }: { to: string; template: T; variables: EmailVariables[T]; locale?: string; }) => { logger.info(`Sending email ${template} to ${to}`); try { const { html, text, subject } = await getTemplate({ id: template, variables, locale, }); const result = await send({ to, subject, html, text }); logger.info(`Email sent successfully to ${to}`); return result; } catch (error) { logger.error(error, `Failed to send email ${template} to ${to}`); throw error; } }; export { sendEmail };