import nodemailer from "nodemailer"; import { emailConfig } from "../utils/email.js"; import type { Project } from "../types.js"; const transporter = nodemailer.createTransport(emailConfig); export const sendAuditEmail = async ( projects: PromiseSettledResult[], ) => { const text = emailContent(projects); const email = await transporter.sendMail({ from: `"${emailConfig.senderName}" <${emailConfig.senderEmail}>`, to: `${emailConfig.reciever}`, subject: emailConfig.subject ?? "Dependency Audit!", text: text, }); return email; }; const emailContent = (projects: PromiseSettledResult[]): string => { return `Here is your Report: ${projects.map((project) => { if (project.status === "fulfilled") { let projectVulnerabilities = project.value.metadata.vulnerabilities.total; return ` ${project.value.projectName} has ${projectVulnerabilities} Security Issues`; } return ` WARN: ${project.reason}`; })} `; };