61 lines
1.7 KiB
JavaScript
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
|
|
}
|