51 lines
1.4 KiB
TypeScript
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;
|