sindresorhus / electron-store

Simple data persistence for your Electron app or module - Save and load user preferences, app state, cache, etc
MIT License
4.57k stars 148 forks source link

WebContents #1 called ipcRenderer.sendSync() with 'getSettingsItem' channel without listeners. #274

Closed Imjamper closed 5 months ago

Imjamper commented 5 months ago

Hello, i found this issue, i got this behavior on latest version. main.js

const Store = require("electron-store");
Store.initRenderer();
const store = new Store();

ipcMain.handle("getSettingsItem", async (event, key) => {
  event.returnValue = store.get(key);
});
ipcMain.handle("setSettingsItem", async (event, key, value) => {
  store.set(key, value);
});
ipcMain.handle("deleteSettingsItem", async (event, key) => {
  store.delete(key);
});

preload.js

contextBridge.exposeInMainWorld("api", {
  setSettingsItem: (key, value) => ipcRenderer.sendSync("setSettingsItem", key, value),
  getSettingsItem(key) {
    return ipcRenderer.sendSync("getSettingsItem", key);
  },
  deleteSettingsItem(key) {
    ipcRenderer.sendSync("deleteSettingsItem", key);
  },
});

Please help.

"electron-store": "8.2.0", "electron": "29.1.5"