diff options
Diffstat (limited to 'packages/main/src/controllers/config.ts')
-rw-r--r-- | packages/main/src/controllers/config.ts | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/packages/main/src/controllers/config.ts b/packages/main/src/controllers/config.ts index c7b027d..b6aba35 100644 --- a/packages/main/src/controllers/config.ts +++ b/packages/main/src/controllers/config.ts | |||
@@ -18,6 +18,7 @@ | |||
18 | * SPDX-License-Identifier: AGPL-3.0-only | 18 | * SPDX-License-Identifier: AGPL-3.0-only |
19 | */ | 19 | */ |
20 | 20 | ||
21 | import consola from 'consola'; | ||
21 | import { debounce } from 'lodash'; | 22 | import { debounce } from 'lodash'; |
22 | import ms from 'ms'; | 23 | import ms from 'ms'; |
23 | import { applySnapshot, getSnapshot, onSnapshot } from 'mobx-state-tree'; | 24 | import { applySnapshot, getSnapshot, onSnapshot } from 'mobx-state-tree'; |
@@ -28,11 +29,15 @@ import { Disposer } from '../utils'; | |||
28 | 29 | ||
29 | const DEFAULT_CONFIG_DEBOUNCE_TIME = ms('1s'); | 30 | const DEFAULT_CONFIG_DEBOUNCE_TIME = ms('1s'); |
30 | 31 | ||
32 | const logger = consola.withTag('sophie:controller:config'); | ||
33 | |||
31 | export async function initConfig( | 34 | export async function initConfig( |
32 | config: Config, | 35 | config: Config, |
33 | persistenceService: ConfigPersistenceService, | 36 | persistenceService: ConfigPersistenceService, |
34 | debounceTime: number = DEFAULT_CONFIG_DEBOUNCE_TIME, | 37 | debounceTime: number = DEFAULT_CONFIG_DEBOUNCE_TIME, |
35 | ): Promise<Disposer> { | 38 | ): Promise<Disposer> { |
39 | logger.debug('Initializing controller'); | ||
40 | |||
36 | let lastSnapshotOnDisk: ConfigSnapshotOut | null = null; | 41 | let lastSnapshotOnDisk: ConfigSnapshotOut | null = null; |
37 | let writingConfig: boolean = false; | 42 | let writingConfig: boolean = false; |
38 | 43 | ||
@@ -42,9 +47,9 @@ export async function initConfig( | |||
42 | try { | 47 | try { |
43 | applySnapshot(config, result.data); | 48 | applySnapshot(config, result.data); |
44 | lastSnapshotOnDisk = getSnapshot(config); | 49 | lastSnapshotOnDisk = getSnapshot(config); |
45 | console.log('Loaded config'); | 50 | logger.debug('Loaded config'); |
46 | } catch (err) { | 51 | } catch (err) { |
47 | console.error('Failed to read config', result.data, err); | 52 | logger.error('Failed to read config', result.data, err); |
48 | } | 53 | } |
49 | } | 54 | } |
50 | return result.found; | 55 | return result.found; |
@@ -56,18 +61,19 @@ export async function initConfig( | |||
56 | try { | 61 | try { |
57 | await persistenceService.writeConfig(snapshot); | 62 | await persistenceService.writeConfig(snapshot); |
58 | lastSnapshotOnDisk = snapshot; | 63 | lastSnapshotOnDisk = snapshot; |
59 | console.log('Wrote config'); | 64 | logger.debug('Wrote config'); |
60 | } finally { | 65 | } finally { |
61 | writingConfig = false; | 66 | writingConfig = false; |
62 | } | 67 | } |
63 | } | 68 | } |
64 | 69 | ||
65 | if (!await readConfig()) { | 70 | if (!await readConfig()) { |
66 | console.log('Creating new config file'); | 71 | logger.info('Config file was not found'); |
67 | try { | 72 | try { |
68 | await writeConfig(); | 73 | await writeConfig(); |
74 | logger.success('Created config file'); | ||
69 | } catch (err) { | 75 | } catch (err) { |
70 | console.error('Failed to initialize config'); | 76 | logger.error('Failed to initialize config'); |
71 | } | 77 | } |
72 | } | 78 | } |
73 | 79 | ||
@@ -75,7 +81,7 @@ export async function initConfig( | |||
75 | // We can compare snapshots by reference, since it is only recreated on store changes. | 81 | // We can compare snapshots by reference, since it is only recreated on store changes. |
76 | if (lastSnapshotOnDisk !== snapshot) { | 82 | if (lastSnapshotOnDisk !== snapshot) { |
77 | writeConfig().catch((err) => { | 83 | writeConfig().catch((err) => { |
78 | console.log('Failed to write config on config change', err); | 84 | logger.error('Failed to write config on config change', err); |
79 | }) | 85 | }) |
80 | } | 86 | } |
81 | }, debounceTime)); | 87 | }, debounceTime)); |
@@ -87,6 +93,7 @@ export async function initConfig( | |||
87 | }, debounceTime); | 93 | }, debounceTime); |
88 | 94 | ||
89 | return () => { | 95 | return () => { |
96 | logger.debug('Disposing controller'); | ||
90 | disposeWatcher(); | 97 | disposeWatcher(); |
91 | disposeOnSnapshot(); | 98 | disposeOnSnapshot(); |
92 | }; | 99 | }; |