decentralized-internet
Version:
An NPM library of programs to create decentralized web and distributed computing projects
26 lines (20 loc) • 994 B
JavaScript
/**
* Preload script for Electron
* Exposes safe APIs to the renderer process
*/
const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('electronAPI', {
// Component management
getStatus: () => ipcRenderer.invoke('get-status'),
startComponent: (component, config) => ipcRenderer.invoke('start-component', component, config),
stopComponent: (component) => ipcRenderer.invoke('stop-component', component),
getLogs: (component) => ipcRenderer.invoke('get-logs', component),
// Monitoring
getMetrics: () => ipcRenderer.invoke('get-metrics'),
// Navigation
onNavigateTo: (callback) => ipcRenderer.on('navigate-to', (event, page) => callback(page)),
onShowAbout: (callback) => ipcRenderer.on('show-about', () => callback()),
// Remove listeners
removeNavigateListener: () => ipcRenderer.removeAllListeners('navigate-to'),
removeAboutListener: () => ipcRenderer.removeAllListeners('show-about')
});