diff options
author | Kristóf Marussy <kristof@marussy.com> | 2021-12-30 02:37:44 +0100 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2021-12-30 02:55:08 +0100 |
commit | 7db370fb877bfaa7bc7cd57764895fb4ab6d493c (patch) | |
tree | c1559d49a3343e3cc59c795a3f3cb781e36d7667 /packages/main/src/controllers | |
parent | build: Switch to esbuild (diff) | |
download | sophie-7db370fb877bfaa7bc7cd57764895fb4ab6d493c.tar.gz sophie-7db370fb877bfaa7bc7cd57764895fb4ab6d493c.tar.zst sophie-7db370fb877bfaa7bc7cd57764895fb4ab6d493c.zip |
refactor: Improve logging
Diffstat (limited to 'packages/main/src/controllers')
-rw-r--r-- | packages/main/src/controllers/config.ts | 32 | ||||
-rw-r--r-- | packages/main/src/controllers/nativeTheme.ts | 10 |
2 files changed, 16 insertions, 26 deletions
diff --git a/packages/main/src/controllers/config.ts b/packages/main/src/controllers/config.ts index f2467c7..600a142 100644 --- a/packages/main/src/controllers/config.ts +++ b/packages/main/src/controllers/config.ts | |||
@@ -28,17 +28,16 @@ import { Disposer, getLogger } from '../utils'; | |||
28 | 28 | ||
29 | const DEFAULT_CONFIG_DEBOUNCE_TIME = ms('1s'); | 29 | const DEFAULT_CONFIG_DEBOUNCE_TIME = ms('1s'); |
30 | 30 | ||
31 | const logger = getLogger('controller:config'); | 31 | const log = getLogger('config'); |
32 | 32 | ||
33 | export async function initConfig( | 33 | export async function initConfig( |
34 | config: Config, | 34 | config: Config, |
35 | persistenceService: ConfigPersistenceService, | 35 | persistenceService: ConfigPersistenceService, |
36 | debounceTime: number = DEFAULT_CONFIG_DEBOUNCE_TIME, | 36 | debounceTime: number = DEFAULT_CONFIG_DEBOUNCE_TIME, |
37 | ): Promise<Disposer> { | 37 | ): Promise<Disposer> { |
38 | logger.debug('Initializing controller'); | 38 | log.trace('Initializing config controller'); |
39 | 39 | ||
40 | let lastSnapshotOnDisk: ConfigSnapshotOut | null = null; | 40 | let lastSnapshotOnDisk: ConfigSnapshotOut | null = null; |
41 | let writingConfig: boolean = false; | ||
42 | 41 | ||
43 | async function readConfig(): Promise<boolean> { | 42 | async function readConfig(): Promise<boolean> { |
44 | const result = await persistenceService.readConfig(); | 43 | const result = await persistenceService.readConfig(); |
@@ -46,9 +45,8 @@ export async function initConfig( | |||
46 | try { | 45 | try { |
47 | applySnapshot(config, result.data); | 46 | applySnapshot(config, result.data); |
48 | lastSnapshotOnDisk = getSnapshot(config); | 47 | lastSnapshotOnDisk = getSnapshot(config); |
49 | logger.debug('Loaded config'); | ||
50 | } catch (err) { | 48 | } catch (err) { |
51 | logger.error('Failed to read config', result.data, err); | 49 | log.error('Failed to apply config snapshot', result.data, err); |
52 | } | 50 | } |
53 | } | 51 | } |
54 | return result.found; | 52 | return result.found; |
@@ -56,23 +54,17 @@ export async function initConfig( | |||
56 | 54 | ||
57 | async function writeConfig(): Promise<void> { | 55 | async function writeConfig(): Promise<void> { |
58 | const snapshot = getSnapshot(config); | 56 | const snapshot = getSnapshot(config); |
59 | writingConfig = true; | 57 | await persistenceService.writeConfig(snapshot); |
60 | try { | 58 | lastSnapshotOnDisk = snapshot; |
61 | await persistenceService.writeConfig(snapshot); | ||
62 | lastSnapshotOnDisk = snapshot; | ||
63 | logger.debug('Wrote config'); | ||
64 | } finally { | ||
65 | writingConfig = false; | ||
66 | } | ||
67 | } | 59 | } |
68 | 60 | ||
69 | if (!await readConfig()) { | 61 | if (!await readConfig()) { |
70 | logger.info('Config file was not found'); | 62 | log.info('Config file was not found'); |
71 | try { | 63 | try { |
72 | await writeConfig(); | 64 | await writeConfig(); |
73 | logger.info('Created config file'); | 65 | log.info('Created config file'); |
74 | } catch (err) { | 66 | } catch (err) { |
75 | logger.error('Failed to initialize config'); | 67 | log.error('Failed to initialize config', err); |
76 | } | 68 | } |
77 | } | 69 | } |
78 | 70 | ||
@@ -80,19 +72,17 @@ export async function initConfig( | |||
80 | // We can compare snapshots by reference, since it is only recreated on store changes. | 72 | // We can compare snapshots by reference, since it is only recreated on store changes. |
81 | if (lastSnapshotOnDisk !== snapshot) { | 73 | if (lastSnapshotOnDisk !== snapshot) { |
82 | writeConfig().catch((err) => { | 74 | writeConfig().catch((err) => { |
83 | logger.error('Failed to write config on config change', err); | 75 | log.error('Failed to write config on config change', err); |
84 | }) | 76 | }) |
85 | } | 77 | } |
86 | }, debounceTime)); | 78 | }, debounceTime)); |
87 | 79 | ||
88 | const disposeWatcher = persistenceService.watchConfig(async () => { | 80 | const disposeWatcher = persistenceService.watchConfig(async () => { |
89 | if (!writingConfig) { | 81 | await readConfig(); |
90 | await readConfig(); | ||
91 | } | ||
92 | }, debounceTime); | 82 | }, debounceTime); |
93 | 83 | ||
94 | return () => { | 84 | return () => { |
95 | logger.debug('Disposing controller'); | 85 | log.trace('Disposing config controller'); |
96 | disposeWatcher(); | 86 | disposeWatcher(); |
97 | disposeOnSnapshot(); | 87 | disposeOnSnapshot(); |
98 | }; | 88 | }; |
diff --git a/packages/main/src/controllers/nativeTheme.ts b/packages/main/src/controllers/nativeTheme.ts index 9f9bc21..9edb4e8 100644 --- a/packages/main/src/controllers/nativeTheme.ts +++ b/packages/main/src/controllers/nativeTheme.ts | |||
@@ -24,25 +24,25 @@ import { autorun } from 'mobx'; | |||
24 | import type { MainStore } from '../stores/MainStore'; | 24 | import type { MainStore } from '../stores/MainStore'; |
25 | import { Disposer, getLogger } from '../utils'; | 25 | import { Disposer, getLogger } from '../utils'; |
26 | 26 | ||
27 | const logger = getLogger('controller:nativeTheme'); | 27 | const log = getLogger('nativeTheme'); |
28 | 28 | ||
29 | export function initNativeTheme(store: MainStore): Disposer { | 29 | export function initNativeTheme(store: MainStore): Disposer { |
30 | logger.debug('Initializing controller'); | 30 | log.trace('Initializing nativeTheme controller'); |
31 | 31 | ||
32 | const disposeThemeSourceReaction = autorun(() => { | 32 | const disposeThemeSourceReaction = autorun(() => { |
33 | nativeTheme.themeSource = store.config.themeSource; | 33 | nativeTheme.themeSource = store.config.themeSource; |
34 | logger.debug('Set theme source:', store.config.themeSource); | 34 | log.debug('Set theme source:', store.config.themeSource); |
35 | }); | 35 | }); |
36 | 36 | ||
37 | store.setShouldUseDarkColors(nativeTheme.shouldUseDarkColors); | 37 | store.setShouldUseDarkColors(nativeTheme.shouldUseDarkColors); |
38 | const shouldUseDarkColorsListener = () => { | 38 | const shouldUseDarkColorsListener = () => { |
39 | store.setShouldUseDarkColors(nativeTheme.shouldUseDarkColors); | 39 | store.setShouldUseDarkColors(nativeTheme.shouldUseDarkColors); |
40 | logger.debug('Set should use dark colors:', nativeTheme.shouldUseDarkColors); | 40 | log.debug('Set should use dark colors:', nativeTheme.shouldUseDarkColors); |
41 | }; | 41 | }; |
42 | nativeTheme.on('updated', shouldUseDarkColorsListener); | 42 | nativeTheme.on('updated', shouldUseDarkColorsListener); |
43 | 43 | ||
44 | return () => { | 44 | return () => { |
45 | logger.debug('Disposing controller'); | 45 | log.trace('Disposing nativeTheme controller'); |
46 | nativeTheme.off('updated', shouldUseDarkColorsListener); | 46 | nativeTheme.off('updated', shouldUseDarkColorsListener); |
47 | disposeThemeSourceReaction(); | 47 | disposeThemeSourceReaction(); |
48 | }; | 48 | }; |