hallo, ive been working on a project with IPC, but no matter what i do (even just copying the example on the IPC walkthrough on the website) electronAPI isn't defined when i console.log it in the renderer, can someone help? ty. code:
main file: ```js
const { app, BrowserWindow } = require('electron');
const WebSocket = require('ws');
const path = require('path');
const open = () => {
const win = new BrowserWindow({
width: 800,
minWidth: 800,
height: 600,
minHeight: 600,
webPreferences: {
preload: path.join(__dirname, 'preload.js')
},
autoHideMenuBar: true,
titleBarStyle: 'hidden',
})
win.loadFile(path.join(__dirname, '/frontend/main.html'));
return win
}
app.whenReady().then(async () => {
const mainWindow = open();
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) open()
})
const ws = new WebSocket("ws://localhost:9999");
ws.on('open', () => {console.log('Websocket connected')})
ws.on('message', (message) => {
const data = JSON.parse(message);
console.log(data);
switch (data.type) {
case 'structurearray':
console.log(JSON.stringify(data.payload));
mainWindow.webContents.send('fileStructure', JSON.stringify(data.payload))
break;
}
})
});
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') app.quit()
})preload:js
const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('electronAPI', {
onFileStructureSend: (data) => ipcRenderer.on('fileStructure', (data)),
}); renderer:js
window.electronAPI.onFileStructureSend(function(data) {
console.log(data);
});