Files
takerofnotes-app/src/preload/index.js
2026-04-06 15:48:43 -04:00

61 lines
1.7 KiB
JavaScript

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
}