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); + }; + }, +});