36 lines
750 B
JavaScript
36 lines
750 B
JavaScript
"use strict";
|
|||
|
|
const { contextBridge, ipcRenderer } = require("electron");
|
||
|
|
|
||
|
|
const SEND = new Set([
|
||
|
|
"pet:ready",
|
||
|
|
"pet:ignore-mouse",
|
||
|
|
"pet:drag-start",
|
||
|
|
"pet:drag-end",
|
||
|
|
"pet:context-menu",
|
||
|
|
"pet:tray-icon",
|
||
|
|
"pet:state",
|
||
|
|
"pet:log",
|
||
|
|
]);
|
||
|
|
|
||
|
|
const ON = new Set([
|
||
|
|
"pet:init",
|
||
|
|
"pet:load",
|
||
|
|
"pet:scale",
|
||
|
|
"pet:settings",
|
||
|
|
"pet:event",
|
||
|
|
"pet:cursor",
|
||
|
|
"pet:drag-move",
|
||
|
|
]);
|
||
|
|
|
||
|
|
contextBridge.exposeInMainWorld("pet", {
|
||
|
|
send(channel, data) {
|
||
|
|
if (SEND.has(channel)) ipcRenderer.send(channel, data);
|
||
|
|
},
|
||
|
|
on(channel, callback) {
|
||
|
|
if (!ON.has(channel)) return () => {};
|
||
|
|
const listener = (_event, data) => callback(data);
|
||
|
|
ipcRenderer.on(channel, listener);
|
||
|
|
return () => ipcRenderer.removeListener(channel, listener);
|
||
|
|
},
|
||
|
|
});
|