mirror of
https://github.com/plebbit/seedit.git
synced 2026-04-19 06:39:18 -04:00
41 lines
1.5 KiB
JavaScript
Executable File
41 lines
1.5 KiB
JavaScript
Executable File
import { contextBridge, ipcRenderer } from 'electron';
|
|
import { fileURLToPath } from 'url';
|
|
import path from 'path';
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const dirname = path.dirname(__filename);
|
|
|
|
// dev uses http://localhost, prod uses file://...index.html
|
|
const isDev = window.location.protocol === 'http:';
|
|
|
|
const defaultPlebbitOptions = {
|
|
plebbitRpcClientsOptions: ['ws://localhost:9138'],
|
|
};
|
|
|
|
contextBridge.exposeInMainWorld('isElectron', true);
|
|
contextBridge.exposeInMainWorld('defaultPlebbitOptions', defaultPlebbitOptions);
|
|
contextBridge.exposeInMainWorld('defaultMediaIpfsGatewayUrl', 'http://localhost:6473');
|
|
|
|
// receive plebbit rpc auth key from main
|
|
ipcRenderer.on('plebbit-rpc-auth-key', (event, plebbitRpcAuthKey) => contextBridge.exposeInMainWorld('plebbitRpcAuthKey', plebbitRpcAuthKey));
|
|
ipcRenderer.send('get-plebbit-rpc-auth-key');
|
|
|
|
// uncomment for logs
|
|
// localStorage.debug = 'plebbit-js:*,plebbit-react-hooks:*,seedit:*'
|
|
|
|
// Expose protected methods that allow the renderer process to use
|
|
// the ipcRenderer without exposing the entire object
|
|
contextBridge.exposeInMainWorld('electron', {
|
|
invoke: (channel, ...args) => {
|
|
const validChannels = [
|
|
'plugin:file-uploader:pickAndUploadMedia',
|
|
'plugin:file-uploader:uploadMedia',
|
|
'plugin:file-uploader:pickMedia'
|
|
];
|
|
if (validChannels.includes(channel)) {
|
|
return ipcRenderer.invoke(channel, ...args);
|
|
}
|
|
throw new Error(`Unauthorized IPC channel: ${channel}`);
|
|
}
|
|
});
|