An open API service indexing awesome lists of open source software.

https://github.com/avin/commutator

Making RPC calls with postmessages
https://github.com/avin/commutator

Last synced: about 1 year ago
JSON representation

Making RPC calls with postmessages

Awesome Lists containing this project

README

          

# Commutator

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

## Install
```
npm install commutator
```

## Usage

**parent.js**

```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
```js
rpc.destroy();
```

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

**iframe.js**

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