import { readFile, writeFile } from 'fs/promises' import { paths } from './paths' import { DEFAULT_SETTINGS, type UserSettings } from '../shared/ipc' /** Lecture des réglages persistés (fusionnés avec les valeurs par défaut). */ export async function getSettings(): Promise { try { const raw = await readFile(paths.settingsFile, 'utf-8') return { ...DEFAULT_SETTINGS, ...(JSON.parse(raw) as Partial) } } catch { return { ...DEFAULT_SETTINGS } } } /** Écriture des réglages (validés/clampés). */ export async function setSettings(next: UserSettings): Promise { const clean: UserSettings = { maxMemoryMb: Math.max(2048, Math.min(32768, Math.round(next.maxMemoryMb || DEFAULT_SETTINGS.maxMemoryMb))), extraJvmArgs: Array.isArray(next.extraJvmArgs) ? next.extraJvmArgs : [] } await writeFile(paths.settingsFile, JSON.stringify(clean, null, 2)) return clean }