From 7060a36eedc659467a2b179b388f3588f4879d32 Mon Sep 17 00:00:00 2001 From: CREDO23 Date: Tue, 17 Mar 2026 16:25:21 +0200 Subject: [PATCH] feat(desktop): add preload script and pnpm build approvals --- surfsense_desktop/pnpm-workspace.yaml | 4 ++++ surfsense_desktop/src/preload.ts | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 surfsense_desktop/pnpm-workspace.yaml create mode 100644 surfsense_desktop/src/preload.ts diff --git a/surfsense_desktop/pnpm-workspace.yaml b/surfsense_desktop/pnpm-workspace.yaml new file mode 100644 index 000000000..43e02386e --- /dev/null +++ b/surfsense_desktop/pnpm-workspace.yaml @@ -0,0 +1,4 @@ +onlyBuiltDependencies: + - electron + - electron-winstaller + - esbuild diff --git a/surfsense_desktop/src/preload.ts b/surfsense_desktop/src/preload.ts new file mode 100644 index 000000000..dd4b89cf8 --- /dev/null +++ b/surfsense_desktop/src/preload.ts @@ -0,0 +1,19 @@ +const { contextBridge, ipcRenderer } = require('electron'); + +contextBridge.exposeInMainWorld('electronAPI', { + versions: { + electron: process.versions.electron, + node: process.versions.node, + chrome: process.versions.chrome, + platform: process.platform, + }, + openExternal: (url: string) => ipcRenderer.send('open-external', url), + getAppVersion: () => ipcRenderer.invoke('get-app-version'), + onDeepLink: (callback: (url: string) => void) => { + const listener = (_event: unknown, url: string) => callback(url); + ipcRenderer.on('deep-link', listener); + return () => { + ipcRenderer.removeListener('deep-link', listener); + }; + }, +});