UNPKG

@webext-core/messaging

Version:

Light weight, type-safe wrapper around the web extension messaging APIs. Supports all browsers (Chrome, Firefox, Safari)

38 lines (36 loc) 1.14 kB
import { __spreadProps, __spreadValues, defineGenericMessanging } from "./chunk-BQLFSFFZ.js"; // src/extension.ts import Browser from "webextension-polyfill"; function defineExtensionMessaging(config) { return defineGenericMessanging(__spreadProps(__spreadValues({}, config), { sendMessage(message, arg) { if (arg == null) { return Browser.runtime.sendMessage(message); } const options = typeof arg === "number" ? { tabId: arg } : arg; return Browser.tabs.sendMessage( options.tabId, message, // Pass frameId if specified options.frameId != null ? { frameId: options.frameId } : void 0 ); }, addRootListener(processMessage) { const listener = (message, sender) => { if (typeof message === "object") return processMessage(__spreadProps(__spreadValues({}, message), { sender })); else return processMessage(message); }; Browser.runtime.onMessage.addListener(listener); return () => Browser.runtime.onMessage.removeListener(listener); } })); } export { defineExtensionMessaging };