From e765e1acdfe8e25c41b267eedd878c739d3e5261 Mon Sep 17 00:00:00 2001 From: Leo Goetz Date: Sun, 24 May 2026 13:37:55 +0200 Subject: fix: config and config command --- src/actions/outputSummary.ts | 0 src/actions/sendEmail.ts | 7 ++++--- src/utils/config.ts | 14 +++++--------- src/utils/email.ts | 32 +++++++++++++++++++------------- 4 files changed, 28 insertions(+), 25 deletions(-) delete mode 100644 src/actions/outputSummary.ts diff --git a/src/actions/outputSummary.ts b/src/actions/outputSummary.ts deleted file mode 100644 index e69de29..0000000 diff --git a/src/actions/sendEmail.ts b/src/actions/sendEmail.ts index 62c527f..ecf89cf 100644 --- a/src/actions/sendEmail.ts +++ b/src/actions/sendEmail.ts @@ -1,12 +1,13 @@ import nodemailer from "nodemailer"; -import { emailConfig } from "../utils/email.js"; +import { getEmailConfig } from "../utils/email.js"; import type { ProjectAudit } from "../types.js"; -const transporter = nodemailer.createTransport(emailConfig); - export const sendAuditEmail = async ( projects: PromiseSettledResult[], ) => { + const emailConfig = await getEmailConfig(); + const transporter = nodemailer.createTransport(emailConfig); + const text = emailContent(projects); const email = await transporter.sendMail({ from: `"${emailConfig.senderName}" <${emailConfig.senderEmail}>`, diff --git a/src/utils/config.ts b/src/utils/config.ts index 62080f7..0706312 100644 --- a/src/utils/config.ts +++ b/src/utils/config.ts @@ -3,7 +3,7 @@ import fs from "fs/promises"; import type { Config } from "../types.js"; const configPath: string = new URL( - `${os.homedir()}/.config/dephelp/`, + `${os.homedir()}/.config/dephelp`, import.meta.url, ).pathname; @@ -34,15 +34,11 @@ export const getConfig = async (): Promise => { export const initConfig = async () => { try { - await fs.access(configPath); + await fs.access(configFile); + console.log(`You already have a config at: ${configFile}`); } catch { - await fs.mkdir(configPath); - } - - try { + await fs.mkdir(configPath, { recursive: true }); await fs.writeFile(`${configFile}`, JSON.stringify(sampleConfig, null, 2)); - console.log(`Config got generated in /.config/dephelp/config.json`); - } catch (error) { - console.error(error); + console.log(`Config got generated: ${configFile}`); } }; diff --git a/src/utils/email.ts b/src/utils/email.ts index 828603b..54fd591 100644 --- a/src/utils/email.ts +++ b/src/utils/email.ts @@ -1,18 +1,24 @@ import type { Config, EmailConfig } from "../types.js"; import { getConfig } from "./config.js"; -const config: Config = await getConfig(); +export const getEmailConfig = async (): Promise => { + const config: Config = await getConfig(); -export const emailConfig: EmailConfig = { - host: config.email!.host, - port: config.email!.port, - secure: config.email!.secure, - auth: { - user: config.email!.auth.user, - pass: config.email!.auth.pass, - }, - senderEmail: config.email!.senderEmail, - senderName: config.email!.senderName, - subject: config.email!.subject, - reciever: config.email!.reciever, + if (!config.email) { + throw new Error("Email configuration is missing in config.json"); + } + + return { + host: config.email.host, + port: config.email.port, + secure: config.email.secure, + auth: { + user: config.email.auth.user, + pass: config.email.auth.pass, + }, + senderEmail: config.email.senderEmail, + senderName: config.email.senderName, + subject: config.email.subject, + reciever: config.email.reciever, + }; }; -- cgit v1.3.1