diff options
author | Kristóf Marussy <kristof@marussy.com> | 2021-12-23 00:43:55 +0100 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2021-12-23 01:17:18 +0100 |
commit | cf23e60c17763123caa77f1194e6efd913692ea1 (patch) | |
tree | 42266377ac1a65a9b225737c8cbef02c6b1871cd /packages/shared | |
parent | feat: Add mui (diff) | |
download | sophie-cf23e60c17763123caa77f1194e6efd913692ea1.tar.gz sophie-cf23e60c17763123caa77f1194e6efd913692ea1.tar.zst sophie-cf23e60c17763123caa77f1194e6efd913692ea1.zip |
feat: Add shared package for electron ipc
Diffstat (limited to 'packages/shared')
-rw-r--r-- | packages/shared/package.json | 15 | ||||
-rw-r--r-- | packages/shared/src/contextBridge/SophieRenderer.ts | 3 | ||||
-rw-r--r-- | packages/shared/src/index.ts | 3 | ||||
-rw-r--r-- | packages/shared/src/ipc/RendererIpcMessage.ts | 3 | ||||
-rw-r--r-- | packages/shared/tsconfig.json | 13 | ||||
-rw-r--r-- | packages/shared/vite.config.js | 44 |
6 files changed, 81 insertions, 0 deletions
diff --git a/packages/shared/package.json b/packages/shared/package.json new file mode 100644 index 0000000..ccde705 --- /dev/null +++ b/packages/shared/package.json | |||
@@ -0,0 +1,15 @@ | |||
1 | { | ||
2 | "name": "@sophie/shared", | ||
3 | "version": "0.1.0", | ||
4 | "private": true, | ||
5 | "main": "dist/index.cjs", | ||
6 | "types": "dist/index.d.ts", | ||
7 | "scripts": { | ||
8 | "build": "vite build", | ||
9 | "typecheck": "tsc" | ||
10 | }, | ||
11 | "devDependencies": { | ||
12 | "typescript": "^4.5.4", | ||
13 | "vite": "^2.7.6" | ||
14 | } | ||
15 | } | ||
diff --git a/packages/shared/src/contextBridge/SophieRenderer.ts b/packages/shared/src/contextBridge/SophieRenderer.ts new file mode 100644 index 0000000..91a0a3c --- /dev/null +++ b/packages/shared/src/contextBridge/SophieRenderer.ts | |||
@@ -0,0 +1,3 @@ | |||
1 | export interface SophieRenderer { | ||
2 | buttonClicked(): void; | ||
3 | } | ||
diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts new file mode 100644 index 0000000..f95675d --- /dev/null +++ b/packages/shared/src/index.ts | |||
@@ -0,0 +1,3 @@ | |||
1 | export type { SophieRenderer } from './contextBridge/SophieRenderer'; | ||
2 | |||
3 | export { RendererIpcMessage } from './ipc/RendererIpcMessage'; | ||
diff --git a/packages/shared/src/ipc/RendererIpcMessage.ts b/packages/shared/src/ipc/RendererIpcMessage.ts new file mode 100644 index 0000000..cfb87ae --- /dev/null +++ b/packages/shared/src/ipc/RendererIpcMessage.ts | |||
@@ -0,0 +1,3 @@ | |||
1 | export enum RendererIpcMessage { | ||
2 | ButtonClicked = "button-clicked" | ||
3 | } | ||
diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json new file mode 100644 index 0000000..d441cc8 --- /dev/null +++ b/packages/shared/tsconfig.json | |||
@@ -0,0 +1,13 @@ | |||
1 | { | ||
2 | "extends": "../../tsconfig.json", | ||
3 | "compilerOptions": { | ||
4 | "composite": true, | ||
5 | "declaration": true, | ||
6 | "declarationDir": "dist", | ||
7 | "emitDeclarationOnly": true, | ||
8 | "rootDir": "src" | ||
9 | }, | ||
10 | "include": [ | ||
11 | "src/**/*.ts" | ||
12 | ] | ||
13 | } | ||
diff --git a/packages/shared/vite.config.js b/packages/shared/vite.config.js new file mode 100644 index 0000000..cbebb8a --- /dev/null +++ b/packages/shared/vite.config.js | |||
@@ -0,0 +1,44 @@ | |||
1 | // @ts-check | ||
2 | |||
3 | import { builtinModules } from 'module'; | ||
4 | |||
5 | // `resolveJsonModule` is disabled for this package, but vite will load the json nevertheless. | ||
6 | // @ts-expect-error | ||
7 | import { chrome, node } from '../../.electron-vendors.cache.json'; | ||
8 | |||
9 | /** @type string */ | ||
10 | const PACKAGE_ROOT = __dirname; | ||
11 | |||
12 | /** | ||
13 | * @type {import('vite').UserConfig} | ||
14 | * @see https://vitejs.dev/config/ | ||
15 | */ | ||
16 | const config = { | ||
17 | mode: process.env.MODE, | ||
18 | root: PACKAGE_ROOT, | ||
19 | envDir: process.cwd(), | ||
20 | build: { | ||
21 | sourcemap: 'inline', | ||
22 | target: [ | ||
23 | `chrome${chrome}`, | ||
24 | `node${node}` | ||
25 | ], | ||
26 | outDir: 'dist', | ||
27 | lib: { | ||
28 | entry: 'src/index.ts', | ||
29 | formats: ['cjs'], | ||
30 | }, | ||
31 | rollupOptions: { | ||
32 | external: [ | ||
33 | ...builtinModules, | ||
34 | ], | ||
35 | output: { | ||
36 | entryFileNames: '[name].cjs', | ||
37 | }, | ||
38 | }, | ||
39 | emptyOutDir: false, // Do not remove `.d.ts` files. | ||
40 | brotliSize: false, | ||
41 | }, | ||
42 | }; | ||
43 | |||
44 | export default config; | ||