aboutsummaryrefslogtreecommitdiffstats
path: root/packages/shared
diff options
context:
space:
mode:
Diffstat (limited to 'packages/shared')
-rw-r--r--packages/shared/package.json5
-rw-r--r--packages/shared/src/contextBridge/SophieRenderer.ts6
-rw-r--r--packages/shared/src/index.ts11
-rw-r--r--packages/shared/src/ipc/MainToRendererIpcMessage.ts4
-rw-r--r--packages/shared/src/ipc/RendererIpcMessage.ts3
-rw-r--r--packages/shared/src/ipc/RendererToMainIpcMessage.ts4
-rw-r--r--packages/shared/src/stores/SharedStore.ts23
-rw-r--r--packages/shared/vite.config.js8
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 @@
1import { SharedStoreListener } from '../stores/SharedStore';
2
1export interface SophieRenderer { 3export 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 @@
1export type { SophieRenderer } from './contextBridge/SophieRenderer'; 1export type { SophieRenderer } from './contextBridge/SophieRenderer';
2 2
3export { RendererIpcMessage } from './ipc/RendererIpcMessage'; 3export { MainToRendererIpcMessage } from './ipc/MainToRendererIpcMessage';
4export { RendererToMainIpcMessage } from './ipc/RendererToMainIpcMessage';
5
6export type {
7 SharedStore,
8 SharedStoreListener,
9 SharedStoreSnapshotIn,
10 SharedStoreSnapshotOut,
11} from './stores/SharedStore';
12export { 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 @@
1export 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 @@
1export 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 @@
1export 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 @@
1import {
2 IJsonPatch,
3 Instance,
4 types,
5 SnapshotIn,
6 SnapshotOut,
7} from 'mobx-state-tree';
8
9export const sharedStore = types.model("SharedStore", {
10 clickCount: 0
11});
12
13export interface SharedStore extends Instance<typeof sharedStore> {}
14
15export interface SharedStoreSnapshotIn extends SnapshotIn<typeof sharedStore> {}
16
17export interface SharedStoreSnapshotOut extends SnapshotOut<typeof sharedStore> {}
18
19export 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,