0.0.7 • Published 2 years ago
pear-rpc v0.0.7
pear-rpc
RPC for Pear
npm install pear-rpcAPI
const RPC = require('pear-rpc')import RPC from 'pear-rpc'const rpc = new RPC(opts)
Accepts a transport stream and creates an instance that can handle both incoming Remote Procedure Calls (RPCs) and generates corresponding instance methods for outgoing RPCs.
Options
stream<Duplex>- the transport streammethods<Array... String|{ name: <String>, stream: <Boolean(false)>, send: <Boolean(false)> }>- an index of method descriptions. The order of methods (and their settings) must be consistent across all RPC instances using the same method set. The index of a method in the array is that methods uint identifier.['myMethod']and[{name: 'myMethod'}]are equivalent. Generated methods default to being request-based (stream:falseandsend:false). Settingsend: truewill generate a fire-and-forget method. Settingstream: truewill generate a method that returns a Streamx stream response. For more complex cases, theapioption can be used to wrap define the instance method.api{ [name]: (method) => (params) => <Stream|Promise|Any> }- Define outgoing methods on the RPC instance. Property names on theapiobject matching names in themethodsarray will be used to generate instance methods if provided. A tiny-buffer-rpcmethodobject will be passed. Call any/all ofmethod.requestmethod.sendormethod.createRequestStreamand make any other calls or alterations as needed.handlers-{ [name]: (params) => <Stream|Promise|Any> }- Handle incoming calls. Property names on thehandlersobject matching names in themethodsarray passed the incomingparamsobject. It is up to the handler to return the correct response for that method.
License
Apache-2.0