Files
nirvana-v3/packages/desktop/src/electron/preload.ts
T

50 lines
1.5 KiB
TypeScript

// eslint-disable-next-line import/no-extraneous-dependencies
import { contextBridge, ipcRenderer } from 'electron';
import { Channels, Dimensions, StoreItems } from './constants';
const electronAPI = {
auth: {
initiateLogin() {
ipcRenderer.send(Channels.ACTIVATE_LOG_IN);
},
},
store: {
get(val: StoreItems) {
return ipcRenderer.invoke('electron-store-get', val);
},
set(property: StoreItems, val: any) {
ipcRenderer.send('electron-store-set', property, val);
},
// Other method you want to add like has(), reset(), etc.
},
window: {
resizeWindow(newDimensions: Dimensions) {
ipcRenderer.send(Channels.RESIZE_WINDOW, newDimensions);
},
},
on(channel: Channels, func: any) {
// const validChannels = ['ipc-example'];
// if (validChannels.includes(channel)) {
// // Deliberately strip event as it includes `sender`
// ipcRenderer.on(channel, (event, ...args) => func(...args));
// }
ipcRenderer.on(channel, (event, ...args) => func(...args));
},
once(channel: Channels, func: any) {
// const validChannels = ["ipc-example"];
// if (validChannels.includes(channel)) {
// // Deliberately strip event as it includes `sender`
// ipcRenderer.once(channel, (event, ...args) => func(...args));
// }
ipcRenderer.once(channel, (event, ...args) => func(...args));
},
};
contextBridge.exposeInMainWorld('electronAPI', electronAPI);
export default electronAPI;