aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2021-12-28 18:52:50 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2021-12-28 18:52:50 +0100
commit0f11a92f08be86c1b1b16bbea42a1588ad5b2771 (patch)
tree3896fe253c3301f9d52713ea3aa582199a9ca3cf
parentbuild: Disable typechecking for tests (diff)
downloadsophie-0f11a92f08be86c1b1b16bbea42a1588ad5b2771.tar.gz
sophie-0f11a92f08be86c1b1b16bbea42a1588ad5b2771.tar.zst
sophie-0f11a92f08be86c1b1b16bbea42a1588ad5b2771.zip
feat: Add consola logging
-rw-r--r--packages/main/package.json2
-rw-r--r--packages/main/src/controllers/config.ts19
-rw-r--r--packages/main/src/controllers/nativeTheme.ts8
-rw-r--r--packages/main/vite.config.js13
-rw-r--r--yarn.lock11
5 files changed, 46 insertions, 7 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
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 };
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
21import consola from 'consola';
21import { nativeTheme } from 'electron'; 22import { nativeTheme } from 'electron';
22import { autorun } from 'mobx'; 23import { autorun } from 'mobx';
23 24
24import type { MainStore } from '../stores/MainStore'; 25import type { MainStore } from '../stores/MainStore';
25import { Disposer } from '../utils'; 26import { Disposer } from '../utils';
26 27
28const logger = consola.withTag('sophie:controller:nativeTheme');
29
27export function initNativeTheme(store: MainStore): Disposer { 30export 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 */
14const config = makeConfig({ 14const 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: {
diff --git a/yarn.lock b/yarn.lock
index a219497..3040ea2 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1199,10 +1199,12 @@ __metadata:
1199 dependencies: 1199 dependencies:
1200 "@sophie/service-shared": "workspace:*" 1200 "@sophie/service-shared": "workspace:*"
1201 "@sophie/shared": "workspace:*" 1201 "@sophie/shared": "workspace:*"
1202 "@types/debug": ^4
1202 "@types/electron-devtools-installer": ^2.2.1 1203 "@types/electron-devtools-installer": ^2.2.1
1203 "@types/lodash": ^4.14.178 1204 "@types/lodash": ^4.14.178
1204 "@types/ms": ^0.7.31 1205 "@types/ms": ^0.7.31
1205 "@types/node": ^17.0.5 1206 "@types/node": ^17.0.5
1207 consola: ^2.15.3
1206 electron: 16.0.5 1208 electron: 16.0.5
1207 electron-devtools-installer: ^3.2.0 1209 electron-devtools-installer: ^3.2.0
1208 json5: ^2.2.0 1210 json5: ^2.2.0
@@ -1374,7 +1376,7 @@ __metadata:
1374 languageName: node 1376 languageName: node
1375 linkType: hard 1377 linkType: hard
1376 1378
1377"@types/debug@npm:^4.1.6": 1379"@types/debug@npm:^4, @types/debug@npm:^4.1.6":
1378 version: 4.1.7 1380 version: 4.1.7
1379 resolution: "@types/debug@npm:4.1.7" 1381 resolution: "@types/debug@npm:4.1.7"
1380 dependencies: 1382 dependencies:
@@ -2584,6 +2586,13 @@ __metadata:
2584 languageName: node 2586 languageName: node
2585 linkType: hard 2587 linkType: hard
2586 2588
2589"consola@npm:^2.15.3":
2590 version: 2.15.3
2591 resolution: "consola@npm:2.15.3"
2592 checksum: 8ef7a09b703ec67ac5c389a372a33b6dc97eda6c9876443a60d76a3076eea0259e7f67a4e54fd5a52f97df73690822d090cf8b7e102b5761348afef7c6d03e28
2593 languageName: node
2594 linkType: hard
2595
2587"console-control-strings@npm:^1.0.0, console-control-strings@npm:^1.1.0": 2596"console-control-strings@npm:^1.0.0, console-control-strings@npm:^1.1.0":
2588 version: 1.1.0 2597 version: 1.1.0
2589 resolution: "console-control-strings@npm:1.1.0" 2598 resolution: "console-control-strings@npm:1.1.0"