import emails from "@server/emails/templates"; import BaseTask from "./BaseTask"; type Props = { templateName: string; props: Record; }; export default class EmailTask extends BaseTask { public async perform({ templateName, props, ...metadata }: Props) { const EmailClass = emails[templateName]; if (!EmailClass) { throw new Error( `Email task "${templateName}" template does not exist. Check the file name matches the class name.` ); } const email = new EmailClass(props, metadata); return email.send(); } }