blob: ecf89cf4ca435d9c9a088186f6644d0d1c45172d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
import nodemailer from "nodemailer";
import { getEmailConfig } from "../utils/email.js";
import type { ProjectAudit } from "../types.js";
export const sendAuditEmail = async (
projects: PromiseSettledResult<ProjectAudit>[],
) => {
const emailConfig = await getEmailConfig();
const transporter = nodemailer.createTransport(emailConfig);
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<ProjectAudit>[],
): 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}`;
})}
`;
};
|