aboutsummaryrefslogtreecommitdiffstats
path: root/packages/shared
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2021-12-23 00:43:55 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2021-12-23 01:17:18 +0100
commitcf23e60c17763123caa77f1194e6efd913692ea1 (patch)
tree42266377ac1a65a9b225737c8cbef02c6b1871cd /packages/shared
parentfeat: Add mui (diff)
downloadsophie-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.json15
-rw-r--r--packages/shared/src/contextBridge/SophieRenderer.ts3
-rw-r--r--packages/shared/src/index.ts3
-rw-r--r--packages/shared/src/ipc/RendererIpcMessage.ts3
-rw-r--r--packages/shared/tsconfig.json13
-rw-r--r--packages/shared/vite.config.js44
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 @@
1export 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 @@
1export type { SophieRenderer } from './contextBridge/SophieRenderer';
2
3export { 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 @@
1export 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
3import { builtinModules } from 'module';
4
5// `resolveJsonModule` is disabled for this package, but vite will load the json nevertheless.
6// @ts-expect-error
7import { chrome, node } from '../../.electron-vendors.cache.json';
8
9/** @type string */
10const PACKAGE_ROOT = __dirname;
11
12/**
13 * @type {import('vite').UserConfig}
14 * @see https://vitejs.dev/config/
15 */
16const 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
44export default config;