- Add logger import across multiple view components - Replace console.error/warn/log with logger methods - Update error handling to use structured logging - Improve type safety for error objects - Add crypto-browserify polyfill for browser environment The changes improve logging by: 1. Using consistent logging interface 2. Adding structured error logging 3. Improving error type safety 4. Centralizing logging configuration 5. Fixing browser compatibility issues Affected files: - Multiple view components - vite.config.ts - Build configuration
79 lines
2.0 KiB
JavaScript
79 lines
2.0 KiB
JavaScript
const { contextBridge, ipcRenderer } = require("electron");
|
|
|
|
const logger = {
|
|
log: (message, ...args) => {
|
|
if (process.env.NODE_ENV !== "production") {
|
|
/* eslint-disable no-console */
|
|
console.log(message, ...args);
|
|
/* eslint-enable no-console */
|
|
}
|
|
},
|
|
warn: (message, ...args) => {
|
|
if (process.env.NODE_ENV !== "production") {
|
|
/* eslint-disable no-console */
|
|
console.warn(message, ...args);
|
|
/* eslint-enable no-console */
|
|
}
|
|
},
|
|
error: (message, ...args) => {
|
|
/* eslint-disable no-console */
|
|
console.error(message, ...args); // Errors should always be logged
|
|
/* eslint-enable no-console */
|
|
},
|
|
};
|
|
|
|
// 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 "";
|
|
}
|
|
};
|
|
|
|
logger.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" ? "/" : "./";
|
|
},
|
|
});
|
|
|
|
logger.log("Preload script completed successfully");
|
|
} catch (error) {
|
|
logger.error("Error in preload script:", error);
|
|
}
|