data-transport icon indicating copy to clipboard operation
data-transport copied to clipboard

A simple and responsible universal transport

data-transport

Node CI npm version

A simple and responsible transport

Support Transport

data-transport is a generic and responsible communication transporter

  • iframe
  • Broadcast
  • Web Worker
  • Service Worker
  • Shared Worker
  • Browser Extension
  • Node.js
  • WebRTC
  • Electron
  • More transport port

Usage

  • Installation
yarn add data-transport
  • Create transport in main page
import { createTransport } from 'data-transport';

const external = createTransport('IFrameMain');
external.listen('hello', async (num) => ({ text: `hello ${num}` }));
  • Create transport in the iframe
import { createTransport } from 'data-transport'

const internal = createTransport('IFrameInternal');
expect(await internal.emit('hello', 42).toEqual({ text: 'hello 42' });

APIs

  • createTransport() Create a transport instance by transport options.

  • mockPorts() Mock ports for testing.

  • merge() Merge multiple transports into one transport.

Transport class
  • Transport
  • MessageTransport
  • IFrameMainTransport
  • IFrameInternalTransport
  • SharedWorkerMainTransport
  • SharedWorkerInternalTransport
  • ServiceWorkerClientTransport
  • ServiceWorkerServiceTransport
  • WorkerMainTransport
  • WorkerInternalTransport
  • BrowserExtensionsGenericTransport
  • BrowserExtensionsMainTransport
  • BrowserExtensionsClientTransport
  • ElectronMainTransport
  • ElectronRendererTransport
  • WebRTCTransport
  • BroadcastTransport
  • MainProcessTransport
  • ChildProcessTransport

Example

Online with Broadcast