Skip to content

avin/commutator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Commutator

Making RPC calls (asynchronous method calls) between browser windows or iframes.

Install

npm install commutator

Usage

parent.js

import { Commutator } from 'commutator';

const rpc = new Commutator({
  // The window you want to talk to:
  target: myIframe.contentWindow,
  // This should be unique for each of your producer<->consumer pairs:
  serviceId: 'my-awesome-service',
});

rpc.expose('add', (data) => data.a + data.b);

Destroy the instance

rpc.destroy();

Remove expose handler

const handleAdd = (data) => data.a + data.b
// Expose
rpc.expose('add', handleAdd);
// Unexpose
rpc.unexpose('add', handleAdd);

iframe.js

import { Commutator } from 'commutator';

const rpc = new Commutator({
  target: window.parent,
  serviceId: 'my-awesome-service',
});

rpc.call('add', { a: 3, b: 5 }).then(result => console.log('3 + 5 is', result));

About

Making RPC calls with postmessages

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published