jiangzhuo / comlink-extension

Use comlink with chrome extensions

Home Page:https://www.npmjs.com/package/comlink-extension

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Comlink for Web Extensions Sponsors

Sponsor this project

This module allows you to use Comlink for Background <-> Content/Popup communication, in Chrome/Firefox/Safari extensions.

Usage

Background-script:

import { createBackgroundEndpoint, isMessagePort } from "comlink-extension";
import * as Comlink from "comlink";

chrome.runtime.onConnect.addListener((port) => {
  if (isMessagePort(port)) return;

  Comlink.expose(
    {
      test() {
        console.log("called");
      },
    },
    createBackgroundEndpoint(port)
  );
});

Content / popup / devtool script:

import { createEndpoint, forward } from "comlink-extension";
import * as Comlink from "comlink";

// Wrap a chrome.runtime.Port
const obj = Comlink.wrap(createEndpoint(chrome.runtime.connect()));
obj.test();

// Or, wrap an existing Message Channel:
const { port1, port2 } = new MessageChannel();
forward(port1, chrome.runtime.connect());

const obj = Comlink.wrap(port2);
obj.test();

About

Use comlink with chrome extensions

https://www.npmjs.com/package/comlink-extension


Languages

Language:TypeScript 100.0%