Files
claude-pet/preload.js
T

37 lines
767 B
JavaScript
Raw Normal View History

"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",
2026-08-21 15:11:56 +08:00
"pet:greeted",
]);
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);
},
});