Files
Dreckshub/preload.js
2025-11-17 13:53:14 +01:00

28 lines
1.1 KiB
JavaScript

const { contextBridge, ipcRenderer } = require("electron");
contextBridge.exposeInMainWorld("api", {
saveTags: (tags) => ipcRenderer.send("save-tags", tags),
loadTags: () => ipcRenderer.invoke("load-tags"),
listSerialPorts: () => ipcRenderer.invoke("list-serial-ports"),
// connect/disconnect + subscription API
connectCom: (port, baudRate) => ipcRenderer.invoke("connect-com", { port, baudRate }),
disconnectCom: () => ipcRenderer.invoke("disconnect-com"),
onSerialUpdate: (cb) => {
const listener = (event, data) => { cb(data); };
ipcRenderer.on("serial-update", listener);
// return unregister function
return () => ipcRenderer.removeListener("serial-update", listener);
},
onSerialRaw: (cb) => {
const listener = (event, data) => { cb(data); };
ipcRenderer.on("serial-raw", listener);
return () => ipcRenderer.removeListener("serial-raw", listener);
},
onVolumeLog: (cb) => {
const listener = (event, data) => { cb(data); };
ipcRenderer.on("volume-log", listener);
return () => ipcRenderer.removeListener("volume-log", listener);
}
});