mirror of https://git.sr.ht/~statianzo/pmrpc
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Jason Staten
b314f69066
|
3 years ago | |
---|---|---|
scripts | 3 years ago | |
src | 3 years ago | |
.build.yml | 3 years ago | |
.gitignore | 3 years ago | |
.travis.yml | 6 years ago | |
LICENSE | 6 years ago | |
README.md | 3 years ago | |
package.json | 3 years ago | |
tsconfig.json | 3 years ago |
README.md
@statianzo/pmrpc
JSON-RPC implemented using postMessage API
Installation
npm install @statianzo/pmrpc
Usage
iframe within parent
import JsonRpc from './JsonRpc';
const rpc = new JsonRpc({
methods: {
greet: name => `Hello ${name}`
},
source: window
});
Parent window
import JsonRpc from './JsonRpc';
const rpc = new JsonRpc({
destination: iframe.contentWindow
});
rpc
.call('greet', 'World')
.then(response => {
console.log(response); // "Hello World"
});
JsonRpc Options
origin
- (Default:*
) Origin to send messagesmethods
- (Default:{}
) An object of exposed methods. Returning a Promise will defer responding until the promise has completedsource
- The source EventTarget to mount JSON rpc on (Window
,MessagePort
, etc)destination
- Target MessageEventSource to send requests to
API
JsonRpc.apply(method, [arg1, arg2, ...])
Invoke a remote rpc method with an array of arguments (like Function.apply
).
Returns a Promise
with the result of the request. Errors from the endpoint
will result in a rejected promise.
JsonRpc.call(method, ...args)
Invoke a remote rpc method with a variadic list of arguments (like
Function.call
). Returns a Promise
with the result of the request.
Errors from the endpoint will result in a rejected promise.
JsonRpc.mount(source)
Mount JsonRpc to a source EventTarget (Window, MessagePort, Worker). This is
called automatically when a source
is passed to the constructor.
JsonRpc.unmount()
Detach the event listener from the JsonRpc instance's source