Skip to content

moqike/pm-rpc

Repository files navigation

Build Status

Install

npm i --save mqk-pm-rpc

Usage

Init RPC provider

import { Provider } from 'mqk-pm-rpc';
const provider = new Provider({
  providers: {
    [providerName]: Provider
  },
  targetWindow
});

provider.start();

// Stop listen as you wish
provider.stop();

Init RPC invokder

import { Client } from 'mqk-pm-rpc';
const client = new Client({
  targetWindow
});

client.start();

// Stop listen as you wish
client.stop();

Remote procedure call

client.invoke('dialog', 'show', ['title']);

Helper function

Callback function arguments

import { Callback } from 'mqk-pm-rpc';
const result = client.invoke('dialog', 'show', ['title', Callback(function(){
  console.log('dialog closed')
})]);
result.then(function(rpcResult) {
  console.log(rpcResult);
};

More complicated case

import { Callback } from 'mqk-pm-rpc';
const result = client.invoke('RPC', 'dialog.show', [{
  �title: 'title',
  onClosed: Callback(function(){
    console.log('dialog closed')
  })
}]);
result.then(function(rpcResult) {
  console.log(rpcResult);
};

TODO: Runtime function arguments

import { Runtime } from 'mqk-pm-rpc';
client.invoke('dialog', 'show', ['title', Runtime(function(a, b){
  return a + b;
})]);