const { contextBridge, ipcRenderer } = require('electron'); // Expose protected methods that allow the renderer process to use // the ipcRenderer without exposing the entire object contextBridge.exposeInMainWorld('electron', { // Window control methods windowControl: { minimize: () => ipcRenderer.invoke('minimize-window'), maximize: () => ipcRenderer.invoke('maximize-window'), close: () => ipcRenderer.invoke('close-window'), }, // Window state listeners windowState: { onMaximized: (callback) => ipcRenderer.on('window-maximized', callback), onUnmaximized: (callback) => ipcRenderer.on('window-unmaximized', callback), removeMaximizedListener: () => ipcRenderer.removeAllListeners('window-maximized'), removeUnmaximizedListener: () => ipcRenderer.removeAllListeners('window-unmaximized'), }, // App info appInfo: { isElectron: true, version: process.env.npm_package_version, } });