Catch and return default (#7804)
Co-authored-by: Douwe Osinga <douwe@squareup.com>
This commit is contained in:
@@ -62,9 +62,14 @@ const SETTINGS_FILE = path.join(app.getPath('userData'), 'settings.json');
|
|||||||
|
|
||||||
function getSettings(): Settings {
|
function getSettings(): Settings {
|
||||||
if (fsSync.existsSync(SETTINGS_FILE)) {
|
if (fsSync.existsSync(SETTINGS_FILE)) {
|
||||||
const data = fsSync.readFileSync(SETTINGS_FILE, 'utf8');
|
let stored: Partial<Settings>;
|
||||||
const stored = JSON.parse(data) as Partial<Settings>;
|
try {
|
||||||
// Deep merge to ensure nested objects get their defaults too
|
const data = fsSync.readFileSync(SETTINGS_FILE, 'utf8');
|
||||||
|
stored = JSON.parse(data) as Partial<Settings>;
|
||||||
|
} catch (err) {
|
||||||
|
console.error('Failed to read settings.json, using defaults:', err);
|
||||||
|
return defaultSettings;
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
...defaultSettings,
|
...defaultSettings,
|
||||||
...stored,
|
...stored,
|
||||||
|
|||||||
Reference in New Issue
Block a user