aboutsummaryrefslogtreecommitdiffstats
path: root/packages/main/src/controllers/config.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/main/src/controllers/config.ts')
-rw-r--r--packages/main/src/controllers/config.ts19
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
21import consola from 'consola';
21import { debounce } from 'lodash'; 22import { debounce } from 'lodash';
22import ms from 'ms'; 23import ms from 'ms';
23import { applySnapshot, getSnapshot, onSnapshot } from 'mobx-state-tree'; 24import { applySnapshot, getSnapshot, onSnapshot } from 'mobx-state-tree';
@@ -28,11 +29,15 @@ import { Disposer } from '../utils';
28 29
29const DEFAULT_CONFIG_DEBOUNCE_TIME = ms('1s'); 30const DEFAULT_CONFIG_DEBOUNCE_TIME = ms('1s');
30 31
32const logger = consola.withTag('sophie:controller:config');
33
31export async function initConfig( 34export 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 };