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

Readme

Keywords

none

Package Sidebar

Install

npm i comlink-extension

Weekly Downloads

9

Version

1.0.8

License

MIT

Unpacked Size

14.9 kB

Total Files

13

Last publish

Collaborators

  • samdd