34 lines
1.4 KiB
JavaScript
34 lines
1.4 KiB
JavaScript
console.log('[PRELOAD] Preload script starting');
|
|
|
|
const { contextBridge, ipcRenderer } = require('electron');
|
|
|
|
console.log('[PRELOAD] Electron modules imported successfully');
|
|
|
|
// Expose protected methods that allow the renderer process to use
|
|
// the ipcRenderer without exposing the entire object
|
|
try {
|
|
contextBridge.exposeInMainWorld('electronAPI', {
|
|
// Window controls
|
|
minimizeWindow: () => ipcRenderer.send('minimize-window'),
|
|
closeWindow: () => ipcRenderer.send('close-window'),
|
|
toggleFullscreen: () => ipcRenderer.send('toggle-fullscreen'),
|
|
|
|
// Logging
|
|
log: (level, message, data) => ipcRenderer.send('log-message', { level, message, data }),
|
|
|
|
// Save operations
|
|
createSaveFolders: (saveSlots) => ipcRenderer.invoke('create-save-folders', saveSlots),
|
|
testFileAccess: (slotPath) => ipcRenderer.invoke('test-file-access', slotPath),
|
|
saveGame: (slot, saveData) => ipcRenderer.invoke('save-game', slot, saveData),
|
|
loadGame: (slot) => ipcRenderer.invoke('load-game', slot),
|
|
|
|
// System operations
|
|
getPath: (name) => ipcRenderer.invoke('get-path', name)
|
|
});
|
|
|
|
console.log('[PRELOAD] electronAPI exposed via contextBridge successfully');
|
|
} catch (error) {
|
|
console.error('[PRELOAD] Failed to expose electronAPI:', error);
|
|
console.error('[PRELOAD] Error stack:', error.stack);
|
|
}
|