import { contextBridge, ipcRenderer } from 'electron' // Custom APIs for renderer const api = { pluginManagerCall: (method, ...args) => ipcRenderer.invoke( 'pluginManager:call', method, ...(args.length ? args : []), ), configManagerCall: (method, ...args) => ipcRenderer.invoke( 'configManager:call', method, ...(args.length ? args : []), ), adapterCall: (method, ...args) => ipcRenderer.invoke( 'adapter:call', method, ...(args.length ? args : []), ), openNoteWindow: (noteId) => { ipcRenderer.send('open-note-window', noteId) }, onNoteCreated: (callback) => { ipcRenderer.on('note-created', (_, data) => callback(data)) }, onNoteUpdated: (callback) => { ipcRenderer.on('note-updated', (_, data) => callback(data)) }, onNoteDeleted: (callback) => { ipcRenderer.on('note-deleted', (_, data) => callback(data)) }, onPluginChanged: (callback) => { ipcRenderer.on('plugin-changed', (_, data) => callback(data)) }, notifyNoteChanged: (event, data) => { ipcRenderer.send('note-changed', event, data) }, moveOpened: () => { ipcRenderer.invoke('move-opened') }, moveClosed: () => { ipcRenderer.invoke('move-closed') }, openDirectoryDialog: () => { return ipcRenderer.invoke('open-directory-dialog') }, } if (process.contextIsolated) { try { contextBridge.exposeInMainWorld('api', api) } catch (error) { console.error(error) } } else { window.api = api }