comlink-extension
TypeScript icon, indicating that this package has built-in type declarations

1.0.8 • Public • Published

Comlink for Web Extensions

This module allows you to use Comlink for Background <-> Content/Popup scripts.

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();

/comlink-extension/

    Package Sidebar

    Install

    npm i comlink-extension

    Weekly Downloads

    29

    Version

    1.0.8

    License

    MIT

    Unpacked Size

    14.9 kB

    Total Files

    13

    Last publish

    Collaborators

    • samdd