diff options
Diffstat (limited to 'packages/main')
-rw-r--r-- | packages/main/package.json | 1 | ||||
-rw-r--r-- | packages/main/src/index.ts | 9 |
2 files changed, 7 insertions, 3 deletions
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 @@ | |||
13 | "@sophie/service-shared": "workspace:*", | 13 | "@sophie/service-shared": "workspace:*", |
14 | "@sophie/shared": "workspace:*", | 14 | "@sophie/shared": "workspace:*", |
15 | "electron": "16.0.5", | 15 | "electron": "16.0.5", |
16 | "json5": "^2.2.0", | ||
16 | "mobx": "^6.3.10", | 17 | "mobx": "^6.3.10", |
17 | "mobx-state-tree": "^5.1.0" | 18 | "mobx-state-tree": "^5.1.0" |
18 | }, | 19 | }, |
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 { | |||
32 | watch, | 32 | watch, |
33 | writeFile, | 33 | writeFile, |
34 | } from 'fs/promises'; | 34 | } from 'fs/promises'; |
35 | import JSON5 from 'json5'; | ||
35 | import { autorun } from 'mobx'; | 36 | import { autorun } from 'mobx'; |
36 | import { | 37 | import { |
37 | applySnapshot, | 38 | applySnapshot, |
@@ -127,7 +128,7 @@ nativeTheme.on('updated', () => { | |||
127 | }); | 128 | }); |
128 | 129 | ||
129 | const userDataDir = app.getPath('userData'); | 130 | const userDataDir = app.getPath('userData'); |
130 | const configFileName = 'config.json'; | 131 | const configFileName = 'config.json5'; |
131 | const configPath = join(userDataDir, configFileName); | 132 | const configPath = join(userDataDir, configFileName); |
132 | let loadingConfig = false; | 133 | let loadingConfig = false; |
133 | let savingConfig = false; | 134 | let savingConfig = false; |
@@ -146,7 +147,7 @@ async function loadConfig(): Promise<void> { | |||
146 | } | 147 | } |
147 | let configSnapshot: unknown; | 148 | let configSnapshot: unknown; |
148 | try { | 149 | try { |
149 | configSnapshot = JSON.parse(configStr); | 150 | configSnapshot = JSON5.parse(configStr); |
150 | } catch (err) { | 151 | } catch (err) { |
151 | console.error('Invalid config file', configPath, err); | 152 | console.error('Invalid config file', configPath, err); |
152 | return; | 153 | return; |
@@ -162,7 +163,9 @@ async function loadConfig(): Promise<void> { | |||
162 | } | 163 | } |
163 | 164 | ||
164 | async function saveConfig(configSnapshot: ConfigSnapshotOut): Promise<void> { | 165 | async function saveConfig(configSnapshot: ConfigSnapshotOut): Promise<void> { |
165 | const configJson = JSON.stringify(configSnapshot, null, 2); | 166 | const configJson = JSON5.stringify(configSnapshot, { |
167 | space: 2, | ||
168 | }); | ||
166 | savingConfig = true; | 169 | savingConfig = true; |
167 | try { | 170 | try { |
168 | await writeFile(configPath, configJson, 'utf8'); | 171 | await writeFile(configPath, configJson, 'utf8'); |