Files
OFLauncher/src/main/settings.ts
T
2026-06-14 12:32:29 +02:00

24 lines
941 B
TypeScript

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<UserSettings> {
try {
const raw = await readFile(paths.settingsFile, 'utf-8')
return { ...DEFAULT_SETTINGS, ...(JSON.parse(raw) as Partial<UserSettings>) }
} catch {
return { ...DEFAULT_SETTINGS }
}
}
/** Écriture des réglages (validés/clampés). */
export async function setSettings(next: UserSettings): Promise<UserSettings> {
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
}