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

51 lines
1.4 KiB
TypeScript

import { contextBridge, ipcRenderer } from "electron";
import Channels from "./constants";
import { STORE_ITEMS } from "./constants";
const electronAPI = {
auth: {
initiateLogin() {
ipcRenderer.send(Channels.ACTIVATE_LOG_IN);
},
},
store: {
get(val: STORE_ITEMS) {
return ipcRenderer.invoke("electron-store-get", val);
},
set(property: STORE_ITEMS, val: any) {
ipcRenderer.send("electron-store-set", property, val);
},
// Other method you want to add like has(), reset(), etc.
},
window: {
resizeWindow(newDimensions: { width: number; height: number }) {
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;