diff options
-rw-r--r-- | package.json | 6 | ||||
-rw-r--r-- | packages/preload/src/contextBridge/SophieRendererImpl.ts | 9 | ||||
-rw-r--r-- | packages/preload/src/contextBridge/__tests__/SophieRendererImpl.spec.ts | 3 | ||||
-rw-r--r-- | yarn.lock | 115 |
4 files changed, 127 insertions, 6 deletions
diff --git a/package.json b/package.json index 620c9cc..22748f7 100644 --- a/package.json +++ b/package.json | |||
@@ -53,5 +53,9 @@ | |||
53 | "typescript": "^4.5.4", | 53 | "typescript": "^4.5.4", |
54 | "vite": "^2.7.9" | 54 | "vite": "^2.7.9" |
55 | }, | 55 | }, |
56 | "packageManager": "yarn@3.1.1" | 56 | "packageManager": "yarn@3.1.1", |
57 | "dependencies": { | ||
58 | "loglevel": "^1.8.0", | ||
59 | "preload": "^0.1.0" | ||
60 | } | ||
57 | } | 61 | } |
diff --git a/packages/preload/src/contextBridge/SophieRendererImpl.ts b/packages/preload/src/contextBridge/SophieRendererImpl.ts index 4c24b74..f3c07c5 100644 --- a/packages/preload/src/contextBridge/SophieRendererImpl.ts +++ b/packages/preload/src/contextBridge/SophieRendererImpl.ts | |||
@@ -19,6 +19,7 @@ | |||
19 | */ | 19 | */ |
20 | 20 | ||
21 | import { ipcRenderer } from 'electron'; | 21 | import { ipcRenderer } from 'electron'; |
22 | import log from 'loglevel'; | ||
22 | import type { IJsonPatch } from 'mobx-state-tree'; | 23 | import type { IJsonPatch } from 'mobx-state-tree'; |
23 | import { | 24 | import { |
24 | Action, | 25 | Action, |
@@ -41,7 +42,7 @@ class SophieRendererImpl implements SophieRenderer { | |||
41 | // `mobx-state-tree` will validate the patch, so we can safely cast here. | 42 | // `mobx-state-tree` will validate the patch, so we can safely cast here. |
42 | this.listener?.onPatch(patch as IJsonPatch); | 43 | this.listener?.onPatch(patch as IJsonPatch); |
43 | } catch (err) { | 44 | } catch (err) { |
44 | console.error('Shared store listener onPatch failed', err); | 45 | log.error('Shared store listener onPatch failed', err); |
45 | this.listener = null; | 46 | this.listener = null; |
46 | } | 47 | } |
47 | }); | 48 | }); |
@@ -58,7 +59,7 @@ class SophieRendererImpl implements SophieRenderer { | |||
58 | snapshot = await ipcRenderer.invoke(RendererToMainIpcMessage.GetSharedStoreSnapshot); | 59 | snapshot = await ipcRenderer.invoke(RendererToMainIpcMessage.GetSharedStoreSnapshot); |
59 | success = true; | 60 | success = true; |
60 | } catch (err) { | 61 | } catch (err) { |
61 | console.error('Failed to get initial shared store snapshot', err); | 62 | log.error('Failed to get initial shared store snapshot', err); |
62 | } | 63 | } |
63 | if (success) { | 64 | if (success) { |
64 | if (sharedStore.is(snapshot)) { | 65 | if (sharedStore.is(snapshot)) { |
@@ -66,7 +67,7 @@ class SophieRendererImpl implements SophieRenderer { | |||
66 | this.listener = listener; | 67 | this.listener = listener; |
67 | return; | 68 | return; |
68 | } | 69 | } |
69 | console.error('Got invalid initial shared store snapshot', snapshot); | 70 | log.error('Got invalid initial shared store snapshot', snapshot); |
70 | } | 71 | } |
71 | throw new Error('Failed to connect to shared store'); | 72 | throw new Error('Failed to connect to shared store'); |
72 | } | 73 | } |
@@ -80,7 +81,7 @@ class SophieRendererImpl implements SophieRenderer { | |||
80 | } catch (err) { | 81 | } catch (err) { |
81 | // Do not leak IPC failure details into the main world. | 82 | // Do not leak IPC failure details into the main world. |
82 | const message = 'Failed to dispatch action'; | 83 | const message = 'Failed to dispatch action'; |
83 | console.error(message, actionToDispatch, err); | 84 | log.error(message, actionToDispatch, err); |
84 | throw new Error(message); | 85 | throw new Error(message); |
85 | } | 86 | } |
86 | } | 87 | } |
diff --git a/packages/preload/src/contextBridge/__tests__/SophieRendererImpl.spec.ts b/packages/preload/src/contextBridge/__tests__/SophieRendererImpl.spec.ts index e40dcf5..41937c2 100644 --- a/packages/preload/src/contextBridge/__tests__/SophieRendererImpl.spec.ts +++ b/packages/preload/src/contextBridge/__tests__/SophieRendererImpl.spec.ts | |||
@@ -20,6 +20,7 @@ | |||
20 | 20 | ||
21 | import { describe, it, jest } from '@jest/globals'; | 21 | import { describe, it, jest } from '@jest/globals'; |
22 | import { mocked } from 'jest-mock'; | 22 | import { mocked } from 'jest-mock'; |
23 | import log from 'loglevel'; | ||
23 | import type { IJsonPatch } from 'mobx-state-tree'; | 24 | import type { IJsonPatch } from 'mobx-state-tree'; |
24 | import { | 25 | import { |
25 | Action, | 26 | Action, |
@@ -66,6 +67,8 @@ const invalidAction = { | |||
66 | action: 'not-a-valid-action', | 67 | action: 'not-a-valid-action', |
67 | } as unknown as Action; | 68 | } as unknown as Action; |
68 | 69 | ||
70 | log.disableAll(); | ||
71 | |||
69 | describe('createSophieRenderer', () => { | 72 | describe('createSophieRenderer', () => { |
70 | it('registers a shared store patch listener', () => { | 73 | it('registers a shared store patch listener', () => { |
71 | createSophieRenderer(false); | 74 | createSophieRenderer(false); |
@@ -2809,6 +2809,13 @@ __metadata: | |||
2809 | languageName: node | 2809 | languageName: node |
2810 | linkType: hard | 2810 | linkType: hard |
2811 | 2811 | ||
2812 | "deep-equal@npm:~0.0.0": | ||
2813 | version: 0.0.0 | ||
2814 | resolution: "deep-equal@npm:0.0.0" | ||
2815 | checksum: 024cf06cfe917e2f2debf531891537fa21a859a8e5696085d97aefc89e20c66ac20f98dd472fcbe0001f235a3b978a1f5bbbfd661ca795d87e5832b3831bd01a | ||
2816 | languageName: node | ||
2817 | linkType: hard | ||
2818 | |||
2812 | "deep-extend@npm:^0.6.0": | 2819 | "deep-extend@npm:^0.6.0": |
2813 | version: 0.6.0 | 2820 | version: 0.6.0 |
2814 | resolution: "deep-extend@npm:0.6.0" | 2821 | resolution: "deep-extend@npm:0.6.0" |
@@ -2846,6 +2853,13 @@ __metadata: | |||
2846 | languageName: node | 2853 | languageName: node |
2847 | linkType: hard | 2854 | linkType: hard |
2848 | 2855 | ||
2856 | "defined@npm:~0.0.0": | ||
2857 | version: 0.0.0 | ||
2858 | resolution: "defined@npm:0.0.0" | ||
2859 | checksum: 037f80bb4d8b92e72ca99f1b24d1d9d683741b28b9cb9c7b5f4a4c913826fd7f4b103440a623a3882f2218ec3d87649fbf86c65c45e6999cf1124b9a8924fca5 | ||
2860 | languageName: node | ||
2861 | linkType: hard | ||
2862 | |||
2849 | "delayed-stream@npm:~1.0.0": | 2863 | "delayed-stream@npm:~1.0.0": |
2850 | version: 1.0.0 | 2864 | version: 1.0.0 |
2851 | resolution: "delayed-stream@npm:1.0.0" | 2865 | resolution: "delayed-stream@npm:1.0.0" |
@@ -4144,6 +4158,16 @@ __metadata: | |||
4144 | languageName: node | 4158 | languageName: node |
4145 | linkType: hard | 4159 | linkType: hard |
4146 | 4160 | ||
4161 | "global@npm:~2.0.7": | ||
4162 | version: 2.0.7 | ||
4163 | resolution: "global@npm:2.0.7" | ||
4164 | dependencies: | ||
4165 | min-document: ~0.2.2 | ||
4166 | process: ~0.5.1 | ||
4167 | checksum: f2ae2bfd251c014cd8273680b4be221f4c20eb07ad9bfce21f6de7bddbcb5d58b393488e8ebf119ede54addb561c648aa47b2407a630c3a69188c8d11c5b0d75 | ||
4168 | languageName: node | ||
4169 | linkType: hard | ||
4170 | |||
4147 | "globals@npm:^11.1.0": | 4171 | "globals@npm:^11.1.0": |
4148 | version: 11.12.0 | 4172 | version: 11.12.0 |
4149 | resolution: "globals@npm:11.12.0" | 4173 | resolution: "globals@npm:11.12.0" |
@@ -4446,7 +4470,7 @@ __metadata: | |||
4446 | languageName: node | 4470 | languageName: node |
4447 | linkType: hard | 4471 | linkType: hard |
4448 | 4472 | ||
4449 | "inherits@npm:2, inherits@npm:^2.0.3, inherits@npm:~2.0.3": | 4473 | "inherits@npm:2, inherits@npm:^2.0.3, inherits@npm:~2.0.1, inherits@npm:~2.0.3": |
4450 | version: 2.0.4 | 4474 | version: 2.0.4 |
4451 | resolution: "inherits@npm:2.0.4" | 4475 | resolution: "inherits@npm:2.0.4" |
4452 | checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 | 4476 | checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 |
@@ -4467,6 +4491,13 @@ __metadata: | |||
4467 | languageName: node | 4491 | languageName: node |
4468 | linkType: hard | 4492 | linkType: hard |
4469 | 4493 | ||
4494 | "insert-css@npm:0.0.0": | ||
4495 | version: 0.0.0 | ||
4496 | resolution: "insert-css@npm:0.0.0" | ||
4497 | checksum: d0441ad656674fe971a594dcf6f53f53cdb8d469668344a7dd15dfa7f2805829d553f3cf799d967256cead4d960f884ffcd27e45df9732916a3c8b7763a16f7b | ||
4498 | languageName: node | ||
4499 | linkType: hard | ||
4500 | |||
4470 | "ip@npm:^1.1.5": | 4501 | "ip@npm:^1.1.5": |
4471 | version: 1.1.5 | 4502 | version: 1.1.5 |
4472 | resolution: "ip@npm:1.1.5" | 4503 | resolution: "ip@npm:1.1.5" |
@@ -5424,6 +5455,13 @@ __metadata: | |||
5424 | languageName: node | 5455 | languageName: node |
5425 | linkType: hard | 5456 | linkType: hard |
5426 | 5457 | ||
5458 | "jsonify@npm:~0.0.0": | ||
5459 | version: 0.0.0 | ||
5460 | resolution: "jsonify@npm:0.0.0" | ||
5461 | checksum: d8d4ed476c116e6987a460dcb82f22284686caae9f498ac87b0502c1765ac1522f4f450a4cad4cc368d202fd3b27a3860735140a82867fc6d558f5f199c38bce | ||
5462 | languageName: node | ||
5463 | linkType: hard | ||
5464 | |||
5427 | "jszip@npm:^3.1.0": | 5465 | "jszip@npm:^3.1.0": |
5428 | version: 3.7.1 | 5466 | version: 3.7.1 |
5429 | resolution: "jszip@npm:3.7.1" | 5467 | resolution: "jszip@npm:3.7.1" |
@@ -5717,6 +5755,15 @@ __metadata: | |||
5717 | languageName: node | 5755 | languageName: node |
5718 | linkType: hard | 5756 | linkType: hard |
5719 | 5757 | ||
5758 | "min-document@npm:~0.2.2": | ||
5759 | version: 0.2.8 | ||
5760 | resolution: "min-document@npm:0.2.8" | ||
5761 | dependencies: | ||
5762 | tape: ~1.0.2 | ||
5763 | checksum: 6f861c6169d5b89c8592dafb1247e962319491099b676276e07663be7d4e30d17fc7bcd3576e18dd4e08c5ea6a3a87db33317d813303bdecba0b562a3fb70adc | ||
5764 | languageName: node | ||
5765 | linkType: hard | ||
5766 | |||
5720 | "minimatch@npm:3.0.4, minimatch@npm:^3.0.4": | 5767 | "minimatch@npm:3.0.4, minimatch@npm:^3.0.4": |
5721 | version: 3.0.4 | 5768 | version: 3.0.4 |
5722 | resolution: "minimatch@npm:3.0.4" | 5769 | resolution: "minimatch@npm:3.0.4" |
@@ -6036,6 +6083,20 @@ __metadata: | |||
6036 | languageName: node | 6083 | languageName: node |
6037 | linkType: hard | 6084 | linkType: hard |
6038 | 6085 | ||
6086 | "once@npm:~1.1.1": | ||
6087 | version: 1.1.1 | ||
6088 | resolution: "once@npm:1.1.1" | ||
6089 | checksum: c5384f8fc8b973476afe84433ed7202cc5fdbf749abc06908716d706caca1ab951209de38f008ce8f5abca8896edec8aff83c97438a7b6808b5582e01b12864f | ||
6090 | languageName: node | ||
6091 | linkType: hard | ||
6092 | |||
6093 | "once@npm:~1.2.0": | ||
6094 | version: 1.2.0 | ||
6095 | resolution: "once@npm:1.2.0" | ||
6096 | checksum: 4e0b4908bd34dd1db7c83a262e66bcfd077ac4eff94d0499b52878346d1371770147d4d9ae6cc47f0f3a3370570b6b79289daee9ea4cfad143d19caf04849259 | ||
6097 | languageName: node | ||
6098 | linkType: hard | ||
6099 | |||
6039 | "onetime@npm:^5.1.2": | 6100 | "onetime@npm:^5.1.2": |
6040 | version: 5.1.2 | 6101 | version: 5.1.2 |
6041 | resolution: "onetime@npm:5.1.2" | 6102 | resolution: "onetime@npm:5.1.2" |
@@ -6261,6 +6322,18 @@ __metadata: | |||
6261 | languageName: node | 6322 | languageName: node |
6262 | linkType: hard | 6323 | linkType: hard |
6263 | 6324 | ||
6325 | "preload@npm:^0.1.0": | ||
6326 | version: 0.1.0 | ||
6327 | resolution: "preload@npm:0.1.0" | ||
6328 | dependencies: | ||
6329 | inherits: ~2.0.1 | ||
6330 | insert-css: 0.0.0 | ||
6331 | once: ~1.2.0 | ||
6332 | xhr: ~1.2.3 | ||
6333 | checksum: 992aa3b9f6c3b4bd40c87bfbdac389337b046d877258d6fc7e4cfc674b60d72eb3fe83ead47665bc76787c6c2ed1a41ff1dedb073f890f098607df1877e5b639 | ||
6334 | languageName: node | ||
6335 | linkType: hard | ||
6336 | |||
6264 | "prelude-ls@npm:^1.2.1": | 6337 | "prelude-ls@npm:^1.2.1": |
6265 | version: 1.2.1 | 6338 | version: 1.2.1 |
6266 | resolution: "prelude-ls@npm:1.2.1" | 6339 | resolution: "prelude-ls@npm:1.2.1" |
@@ -6301,6 +6374,13 @@ __metadata: | |||
6301 | languageName: node | 6374 | languageName: node |
6302 | linkType: hard | 6375 | linkType: hard |
6303 | 6376 | ||
6377 | "process@npm:~0.5.1": | ||
6378 | version: 0.5.2 | ||
6379 | resolution: "process@npm:0.5.2" | ||
6380 | checksum: 613505ec6d518654fc9c677881c6b8c871179dbf4bfe23f5a7a15defdb58efb1b75bfc96576adc118ba0bca1b76c359687a13f7d43950af0b7d5caa27efbe9e3 | ||
6381 | languageName: node | ||
6382 | linkType: hard | ||
6383 | |||
6304 | "progress@npm:^2.0.0, progress@npm:^2.0.3": | 6384 | "progress@npm:^2.0.0, progress@npm:^2.0.3": |
6305 | version: 2.0.3 | 6385 | version: 2.0.3 |
6306 | resolution: "progress@npm:2.0.3" | 6386 | resolution: "progress@npm:2.0.3" |
@@ -6930,6 +7010,8 @@ __metadata: | |||
6930 | esbuild: ^0.14.9 | 7010 | esbuild: ^0.14.9 |
6931 | eslint: ^8.5.0 | 7011 | eslint: ^8.5.0 |
6932 | jest: ^27.4.5 | 7012 | jest: ^27.4.5 |
7013 | loglevel: ^1.8.0 | ||
7014 | preload: ^0.1.0 | ||
6933 | rimraf: ^3.0.2 | 7015 | rimraf: ^3.0.2 |
6934 | rollup: ^2.62.0 | 7016 | rollup: ^2.62.0 |
6935 | ts-jest: ^27.1.2 | 7017 | ts-jest: ^27.1.2 |
@@ -7151,6 +7233,20 @@ __metadata: | |||
7151 | languageName: node | 7233 | languageName: node |
7152 | linkType: hard | 7234 | linkType: hard |
7153 | 7235 | ||
7236 | "tape@npm:~1.0.2": | ||
7237 | version: 1.0.4 | ||
7238 | resolution: "tape@npm:1.0.4" | ||
7239 | dependencies: | ||
7240 | deep-equal: ~0.0.0 | ||
7241 | defined: ~0.0.0 | ||
7242 | jsonify: ~0.0.0 | ||
7243 | through: ~2.3.4 | ||
7244 | bin: | ||
7245 | tape: ./bin/tape | ||
7246 | checksum: c8a3e7b0dbb8450d3b18bf8d82a5ac393d0d25ed26a3fa5c1f3205e263f8828b744c6a61cd7d35fa93c4948d2da88232994bf41451186cd9caf77ed87e47871d | ||
7247 | languageName: node | ||
7248 | linkType: hard | ||
7249 | |||
7154 | "tar@npm:^6.0.2, tar@npm:^6.1.2": | 7250 | "tar@npm:^6.0.2, tar@npm:^6.1.2": |
7155 | version: 6.1.11 | 7251 | version: 6.1.11 |
7156 | resolution: "tar@npm:6.1.11" | 7252 | resolution: "tar@npm:6.1.11" |
@@ -7210,6 +7306,13 @@ __metadata: | |||
7210 | languageName: node | 7306 | languageName: node |
7211 | linkType: hard | 7307 | linkType: hard |
7212 | 7308 | ||
7309 | "through@npm:~2.3.4": | ||
7310 | version: 2.3.8 | ||
7311 | resolution: "through@npm:2.3.8" | ||
7312 | checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd | ||
7313 | languageName: node | ||
7314 | linkType: hard | ||
7315 | |||
7213 | "tmp-promise@npm:^3.0.2": | 7316 | "tmp-promise@npm:^3.0.2": |
7214 | version: 3.0.3 | 7317 | version: 3.0.3 |
7215 | resolution: "tmp-promise@npm:3.0.3" | 7318 | resolution: "tmp-promise@npm:3.0.3" |
@@ -7821,6 +7924,16 @@ __metadata: | |||
7821 | languageName: node | 7924 | languageName: node |
7822 | linkType: hard | 7925 | linkType: hard |
7823 | 7926 | ||
7927 | "xhr@npm:~1.2.3": | ||
7928 | version: 1.2.4 | ||
7929 | resolution: "xhr@npm:1.2.4" | ||
7930 | dependencies: | ||
7931 | global: ~2.0.7 | ||
7932 | once: ~1.1.1 | ||
7933 | checksum: 55840633fc96bfee99a9c7c839aa8db670f061fc13c45a4056f66c1194b0525f511dbcb5f01ba6ea2f02908f600fd19af13e6d24622ba26b168afbfd94f9211a | ||
7934 | languageName: node | ||
7935 | linkType: hard | ||
7936 | |||
7824 | "xml-name-validator@npm:^3.0.0": | 7937 | "xml-name-validator@npm:^3.0.0": |
7825 | version: 3.0.0 | 7938 | version: 3.0.0 |
7826 | resolution: "xml-name-validator@npm:3.0.0" | 7939 | resolution: "xml-name-validator@npm:3.0.0" |