const { contextBridge, ipcRenderer } = require("electron"); // Use a more direct path resolution approach const getPath = (pathType) => { switch (pathType) { case "userData": return ( process.env.APPDATA || (process.platform === "darwin" ? `${process.env.HOME}/Library/Application Support` : `${process.env.HOME}/.local/share`) ); case "home": return process.env.HOME; case "appPath": return process.resourcesPath; default: return ""; } }; console.log("Preload script starting..."); try { contextBridge.exposeInMainWorld("electronAPI", { // Path utilities getPath, // IPC functions send: (channel, data) => { const validChannels = ["toMain"]; if (validChannels.includes(channel)) { ipcRenderer.send(channel, data); } }, receive: (channel, func) => { const validChannels = ["fromMain"]; if (validChannels.includes(channel)) { ipcRenderer.on(channel, (event, ...args) => func(...args)); } }, // Environment info env: { isElectron: true, isDev: process.env.NODE_ENV === "development", }, // Path utilities getBasePath: () => { return process.env.NODE_ENV === "development" ? "/" : "./"; }, }); console.log("Preload script completed successfully"); } catch (error) { console.error("Error in preload script:", error); }