Files
crowd-funder-for-time-pwa/src/electron/preload.js
Matthew Raymer e5518cd47c fix: update Vue template syntax and improve Vite config
- Fix Vue template syntax in App.vue by using proper event handler format
- Update Vite config to properly handle ESM imports and crypto modules
- Add manual chunks for better code splitting
- Improve environment variable handling in vite-env.d.ts
- Fix TypeScript linting errors in App.vue
2025-04-18 09:59:33 +00:00

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)
}