Files
Aurora-SpotiRip/electron/settings.ts
T

33 lines
947 B
TypeScript
Raw Normal View History

2026-09-25 23:20:57 -05:00
import { app } from "electron";
import { existsSync, readFileSync, writeFileSync } from "node:fs";
import { join } from "node:path";
type DesktopSettings = { downloadFolder: string };
const SETTINGS_FILE = join(app.getPath("userData"), "settings.json");
function defaults(): DesktopSettings {
return { downloadFolder: join(app.getPath("music"), "Aurora SpotiRip") };
}
export function loadSettings(): DesktopSettings {
try {
if (existsSync(SETTINGS_FILE)) {
return { ...defaults(), ...JSON.parse(readFileSync(SETTINGS_FILE, "utf8")) };
}
} catch {
}
return defaults();
}
export function saveSettings(changes: Partial<DesktopSettings>) {
const next = { ...loadSettings(), ...changes };
writeFileSync(SETTINGS_FILE, JSON.stringify(next, null, 2));
applySettings(next);
return next;
}
export function applySettings(settings = loadSettings()) {
process.env.SPOTIRIP_DOWNLOAD_FOLDER = settings.downloadFolder;
}