first commit
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user