const { contextBridge, ipcRenderer } = require('electron'); const call = async (channel, ...args) => { const r = await ipcRenderer.invoke(channel, ...args); if (!r.ok) throw new Error(r.error); return r.data; }; contextBridge.exposeInMainWorld('nc', { config: () => call('config'), restore: () => call('restore'), loginPassword: (server, user, pass, remember) => call('login-password', server, user, pass, remember), loginBrowser: (server, remember) => call('login-browser', server, remember), loginCancel: () => call('login-cancel'), logout: () => call('logout'), folder: (path) => call('folder', path), timeline: (offset) => call('timeline', offset), albums: () => call('albums'), album: (href) => call('album', href), openInNextcloud: (fileId) => call('open-in-nextcloud', fileId), toggleFullscreen: () => call('toggle-fullscreen'), });