diff options
author | Kristóf Marussy <kristof@marussy.com> | 2021-12-28 18:52:50 +0100 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2021-12-28 18:52:50 +0100 |
commit | 0f11a92f08be86c1b1b16bbea42a1588ad5b2771 (patch) | |
tree | 3896fe253c3301f9d52713ea3aa582199a9ca3cf /packages/main | |
parent | build: Disable typechecking for tests (diff) | |
download | sophie-0f11a92f08be86c1b1b16bbea42a1588ad5b2771.tar.gz sophie-0f11a92f08be86c1b1b16bbea42a1588ad5b2771.tar.zst sophie-0f11a92f08be86c1b1b16bbea42a1588ad5b2771.zip |
feat: Add consola logging
Diffstat (limited to 'packages/main')
-rw-r--r-- | packages/main/package.json | 2 | ||||
-rw-r--r-- | packages/main/src/controllers/config.ts | 19 | ||||
-rw-r--r-- | packages/main/src/controllers/nativeTheme.ts | 8 | ||||
-rw-r--r-- | packages/main/vite.config.js | 13 |
4 files changed, 36 insertions, 6 deletions
diff --git a/packages/main/package.json b/packages/main/package.json index 1c6a800..5010092 100644 --- a/packages/main/package.json +++ b/packages/main/package.json | |||
@@ -12,6 +12,7 @@ | |||
12 | "dependencies": { | 12 | "dependencies": { |
13 | "@sophie/service-shared": "workspace:*", | 13 | "@sophie/service-shared": "workspace:*", |
14 | "@sophie/shared": "workspace:*", | 14 | "@sophie/shared": "workspace:*", |
15 | "consola": "^2.15.3", | ||
15 | "electron": "16.0.5", | 16 | "electron": "16.0.5", |
16 | "json5": "^2.2.0", | 17 | "json5": "^2.2.0", |
17 | "lodash": "^4.17.21", | 18 | "lodash": "^4.17.21", |
@@ -20,6 +21,7 @@ | |||
20 | "ms": "^2.1.3" | 21 | "ms": "^2.1.3" |
21 | }, | 22 | }, |
22 | "devDependencies": { | 23 | "devDependencies": { |
24 | "@types/debug": "^4", | ||
23 | "@types/electron-devtools-installer": "^2.2.1", | 25 | "@types/electron-devtools-installer": "^2.2.1", |
24 | "@types/lodash": "^4.14.178", | 26 | "@types/lodash": "^4.14.178", |
25 | "@types/ms": "^0.7.31", | 27 | "@types/ms": "^0.7.31", |
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 | }; |
diff --git a/packages/main/src/controllers/nativeTheme.ts b/packages/main/src/controllers/nativeTheme.ts index e4390a8..6548771 100644 --- a/packages/main/src/controllers/nativeTheme.ts +++ b/packages/main/src/controllers/nativeTheme.ts | |||
@@ -18,24 +18,32 @@ | |||
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 { nativeTheme } from 'electron'; | 22 | import { nativeTheme } from 'electron'; |
22 | import { autorun } from 'mobx'; | 23 | import { autorun } from 'mobx'; |
23 | 24 | ||
24 | import type { MainStore } from '../stores/MainStore'; | 25 | import type { MainStore } from '../stores/MainStore'; |
25 | import { Disposer } from '../utils'; | 26 | import { Disposer } from '../utils'; |
26 | 27 | ||
28 | const logger = consola.withTag('sophie:controller:nativeTheme'); | ||
29 | |||
27 | export function initNativeTheme(store: MainStore): Disposer { | 30 | export function initNativeTheme(store: MainStore): Disposer { |
31 | logger.debug('Initializing controller'); | ||
32 | |||
28 | const disposeThemeSourceReaction = autorun(() => { | 33 | const disposeThemeSourceReaction = autorun(() => { |
29 | nativeTheme.themeSource = store.config.themeSource; | 34 | nativeTheme.themeSource = store.config.themeSource; |
35 | logger.debug('Set theme source:', store.config.themeSource); | ||
30 | }); | 36 | }); |
31 | 37 | ||
32 | store.setShouldUseDarkColors(nativeTheme.shouldUseDarkColors); | 38 | store.setShouldUseDarkColors(nativeTheme.shouldUseDarkColors); |
33 | const shouldUseDarkColorsListener = () => { | 39 | const shouldUseDarkColorsListener = () => { |
34 | store.setShouldUseDarkColors(nativeTheme.shouldUseDarkColors); | 40 | store.setShouldUseDarkColors(nativeTheme.shouldUseDarkColors); |
41 | logger.debug('Set should use dark colors:', nativeTheme.shouldUseDarkColors); | ||
35 | }; | 42 | }; |
36 | nativeTheme.on('updated', shouldUseDarkColorsListener); | 43 | nativeTheme.on('updated', shouldUseDarkColorsListener); |
37 | 44 | ||
38 | return () => { | 45 | return () => { |
46 | logger.debug('Disposing controller'); | ||
39 | nativeTheme.off('updated', shouldUseDarkColorsListener); | 47 | nativeTheme.off('updated', shouldUseDarkColorsListener); |
40 | disposeThemeSourceReaction(); | 48 | disposeThemeSourceReaction(); |
41 | }; | 49 | }; |
diff --git a/packages/main/vite.config.js b/packages/main/vite.config.js index a4d10b2..d6f9373 100644 --- a/packages/main/vite.config.js +++ b/packages/main/vite.config.js | |||
@@ -13,6 +13,19 @@ const PACKAGE_ROOT = __dirname; | |||
13 | */ | 13 | */ |
14 | const config = makeConfig({ | 14 | const config = makeConfig({ |
15 | root: PACKAGE_ROOT, | 15 | root: PACKAGE_ROOT, |
16 | define: { | ||
17 | // Allow access to process.env in imported packages. | ||
18 | // https://github.com/vitejs/vite/issues/3176#issuecomment-876610206 | ||
19 | 'process.env': 'process["env"]', | ||
20 | 'global.process.env': 'global.process["env"]', | ||
21 | 'globalThis.process.env': 'globalThis.process["env"]', | ||
22 | }, | ||
23 | resolve: { | ||
24 | alias: { | ||
25 | // Force resolve consola to the nodejs version. | ||
26 | consola: 'consola/dist/consola.js', | ||
27 | }, | ||
28 | }, | ||
16 | build: { | 29 | build: { |
17 | target: node, | 30 | target: node, |
18 | lib: { | 31 | lib: { |