diff options
Diffstat (limited to 'packages/shared')
-rw-r--r-- | packages/shared/package.json | 5 | ||||
-rw-r--r-- | packages/shared/src/contextBridge/SophieRenderer.ts | 6 | ||||
-rw-r--r-- | packages/shared/src/index.ts | 11 | ||||
-rw-r--r-- | packages/shared/src/ipc/MainToRendererIpcMessage.ts | 4 | ||||
-rw-r--r-- | packages/shared/src/ipc/RendererIpcMessage.ts | 3 | ||||
-rw-r--r-- | packages/shared/src/ipc/RendererToMainIpcMessage.ts | 4 | ||||
-rw-r--r-- | packages/shared/src/stores/SharedStore.ts | 23 | ||||
-rw-r--r-- | packages/shared/vite.config.js | 8 |
8 files changed, 55 insertions, 9 deletions
diff --git a/packages/shared/package.json b/packages/shared/package.json index ccde705..f49be47 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json | |||
@@ -3,6 +3,7 @@ | |||
3 | "version": "0.1.0", | 3 | "version": "0.1.0", |
4 | "private": true, | 4 | "private": true, |
5 | "main": "dist/index.cjs", | 5 | "main": "dist/index.cjs", |
6 | "module": "dist/index.es.js", | ||
6 | "types": "dist/index.d.ts", | 7 | "types": "dist/index.d.ts", |
7 | "scripts": { | 8 | "scripts": { |
8 | "build": "vite build", | 9 | "build": "vite build", |
@@ -11,5 +12,9 @@ | |||
11 | "devDependencies": { | 12 | "devDependencies": { |
12 | "typescript": "^4.5.4", | 13 | "typescript": "^4.5.4", |
13 | "vite": "^2.7.6" | 14 | "vite": "^2.7.6" |
15 | }, | ||
16 | "dependencies": { | ||
17 | "mobx": "^6.3.10", | ||
18 | "mobx-state-tree": "^5.1.0" | ||
14 | } | 19 | } |
15 | } | 20 | } |
diff --git a/packages/shared/src/contextBridge/SophieRenderer.ts b/packages/shared/src/contextBridge/SophieRenderer.ts index 91a0a3c..c878595 100644 --- a/packages/shared/src/contextBridge/SophieRenderer.ts +++ b/packages/shared/src/contextBridge/SophieRenderer.ts | |||
@@ -1,3 +1,7 @@ | |||
1 | import { SharedStoreListener } from '../stores/SharedStore'; | ||
2 | |||
1 | export interface SophieRenderer { | 3 | export interface SophieRenderer { |
2 | buttonClicked(): void; | 4 | setSharedStoreListener(listener: SharedStoreListener): void; |
5 | |||
6 | buttonClick(): void; | ||
3 | } | 7 | } |
diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index f95675d..7f192bd 100644 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts | |||
@@ -1,3 +1,12 @@ | |||
1 | export type { SophieRenderer } from './contextBridge/SophieRenderer'; | 1 | export type { SophieRenderer } from './contextBridge/SophieRenderer'; |
2 | 2 | ||
3 | export { RendererIpcMessage } from './ipc/RendererIpcMessage'; | 3 | export { MainToRendererIpcMessage } from './ipc/MainToRendererIpcMessage'; |
4 | export { RendererToMainIpcMessage } from './ipc/RendererToMainIpcMessage'; | ||
5 | |||
6 | export type { | ||
7 | SharedStore, | ||
8 | SharedStoreListener, | ||
9 | SharedStoreSnapshotIn, | ||
10 | SharedStoreSnapshotOut, | ||
11 | } from './stores/SharedStore'; | ||
12 | export { sharedStore } from './stores/SharedStore'; | ||
diff --git a/packages/shared/src/ipc/MainToRendererIpcMessage.ts b/packages/shared/src/ipc/MainToRendererIpcMessage.ts new file mode 100644 index 0000000..2ddca80 --- /dev/null +++ b/packages/shared/src/ipc/MainToRendererIpcMessage.ts | |||
@@ -0,0 +1,4 @@ | |||
1 | export enum MainToRendererIpcMessage { | ||
2 | SharedStoreSnapshot = "sophie-shared-store-snapshot", | ||
3 | SharedStorePatch = "sophie-shared-store-patch", | ||
4 | } | ||
diff --git a/packages/shared/src/ipc/RendererIpcMessage.ts b/packages/shared/src/ipc/RendererIpcMessage.ts deleted file mode 100644 index cfb87ae..0000000 --- a/packages/shared/src/ipc/RendererIpcMessage.ts +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | export enum RendererIpcMessage { | ||
2 | ButtonClicked = "button-clicked" | ||
3 | } | ||
diff --git a/packages/shared/src/ipc/RendererToMainIpcMessage.ts b/packages/shared/src/ipc/RendererToMainIpcMessage.ts new file mode 100644 index 0000000..c4c682d --- /dev/null +++ b/packages/shared/src/ipc/RendererToMainIpcMessage.ts | |||
@@ -0,0 +1,4 @@ | |||
1 | export enum RendererToMainIpcMessage { | ||
2 | SharedStoreSnapshotRequest = "sophie-shared-store-snapshot-request", | ||
3 | ButtonClick = "sophie-button-click" | ||
4 | } | ||
diff --git a/packages/shared/src/stores/SharedStore.ts b/packages/shared/src/stores/SharedStore.ts new file mode 100644 index 0000000..8933bca --- /dev/null +++ b/packages/shared/src/stores/SharedStore.ts | |||
@@ -0,0 +1,23 @@ | |||
1 | import { | ||
2 | IJsonPatch, | ||
3 | Instance, | ||
4 | types, | ||
5 | SnapshotIn, | ||
6 | SnapshotOut, | ||
7 | } from 'mobx-state-tree'; | ||
8 | |||
9 | export const sharedStore = types.model("SharedStore", { | ||
10 | clickCount: 0 | ||
11 | }); | ||
12 | |||
13 | export interface SharedStore extends Instance<typeof sharedStore> {} | ||
14 | |||
15 | export interface SharedStoreSnapshotIn extends SnapshotIn<typeof sharedStore> {} | ||
16 | |||
17 | export interface SharedStoreSnapshotOut extends SnapshotOut<typeof sharedStore> {} | ||
18 | |||
19 | export interface SharedStoreListener { | ||
20 | onSnapshot(snapshot: SharedStoreSnapshotIn): void; | ||
21 | |||
22 | onPatch(patch: IJsonPatch): void; | ||
23 | } | ||
diff --git a/packages/shared/vite.config.js b/packages/shared/vite.config.js index cbebb8a..05ec118 100644 --- a/packages/shared/vite.config.js +++ b/packages/shared/vite.config.js | |||
@@ -26,15 +26,15 @@ const config = { | |||
26 | outDir: 'dist', | 26 | outDir: 'dist', |
27 | lib: { | 27 | lib: { |
28 | entry: 'src/index.ts', | 28 | entry: 'src/index.ts', |
29 | formats: ['cjs'], | 29 | formats: ['cjs', 'es'], |
30 | fileName: (format) => format === 'cjs' ? 'index.cjs' : `index.${format}.js`, | ||
30 | }, | 31 | }, |
31 | rollupOptions: { | 32 | rollupOptions: { |
32 | external: [ | 33 | external: [ |
34 | 'mobx', | ||
35 | 'mobx-state-tree', | ||
33 | ...builtinModules, | 36 | ...builtinModules, |
34 | ], | 37 | ], |
35 | output: { | ||
36 | entryFileNames: '[name].cjs', | ||
37 | }, | ||
38 | }, | 38 | }, |
39 | emptyOutDir: false, // Do not remove `.d.ts` files. | 39 | emptyOutDir: false, // Do not remove `.d.ts` files. |
40 | brotliSize: false, | 40 | brotliSize: false, |