From ff9eb579ee93432660182ecde52d753bfcd5e4a1 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Sun, 26 Dec 2021 13:16:55 +0100 Subject: feat: Switch to json5 config format --- packages/main/package.json | 1 + packages/main/src/index.ts | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) (limited to 'packages/main') diff --git a/packages/main/package.json b/packages/main/package.json index 4185793..96cd52c 100644 --- a/packages/main/package.json +++ b/packages/main/package.json @@ -13,6 +13,7 @@ "@sophie/service-shared": "workspace:*", "@sophie/shared": "workspace:*", "electron": "16.0.5", + "json5": "^2.2.0", "mobx": "^6.3.10", "mobx-state-tree": "^5.1.0" }, diff --git a/packages/main/src/index.ts b/packages/main/src/index.ts index 605c17c..8055ce2 100644 --- a/packages/main/src/index.ts +++ b/packages/main/src/index.ts @@ -32,6 +32,7 @@ import { watch, writeFile, } from 'fs/promises'; +import JSON5 from 'json5'; import { autorun } from 'mobx'; import { applySnapshot, @@ -127,7 +128,7 @@ nativeTheme.on('updated', () => { }); const userDataDir = app.getPath('userData'); -const configFileName = 'config.json'; +const configFileName = 'config.json5'; const configPath = join(userDataDir, configFileName); let loadingConfig = false; let savingConfig = false; @@ -146,7 +147,7 @@ async function loadConfig(): Promise { } let configSnapshot: unknown; try { - configSnapshot = JSON.parse(configStr); + configSnapshot = JSON5.parse(configStr); } catch (err) { console.error('Invalid config file', configPath, err); return; @@ -162,7 +163,9 @@ async function loadConfig(): Promise { } async function saveConfig(configSnapshot: ConfigSnapshotOut): Promise { - const configJson = JSON.stringify(configSnapshot, null, 2); + const configJson = JSON5.stringify(configSnapshot, { + space: 2, + }); savingConfig = true; try { await writeFile(configPath, configJson, 'utf8'); -- cgit v1.2.3-54-g00ecf