forked from trent_larson/crowd-funder-for-time-pwa
- 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
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)
|
|
}
|