@bufferapp/micro-rpc-client

1.4.3 • Public • Published

micro-rpc-client

Build Status

Universal JS RPC Client https://github.com/bufferapp/buffer-rpc/

Quickstart

Create an RPC Client and call an add function

const RPCClient = require('micro-rpc-client');

const client = new RPCClient({
  url: 'https://localhost:3000/rpc',
});

const main = async () => {
  const result = await client.call('add', [1, 2]);
  console.log(result); // 3
};
main();

Usage

A few examples of how to call client methods

const RPCClient = require('micro-rpc-client');

const client = new RPCClient({
  url: 'https://localhost:3000/rpc',
  sendCredentials: 'same-origin', // send cookies on same origin requests
});

const main = async () => {
  const methods = await client.listMethods();
  console.log(method);
  /*
  [
    {
      "docs": "add two numbers"
      "name": "add"
    },
    {
      "docs": "list all available methods",
      "name": "methods"
    }
  ]
  */
  const result = await client.call('add', [1, 2]);
  console.log(result); // 3
};
main();

API

constructor

Create an instance of RPCClient

const client = new RPCClient({
  url,
  sendCredentials,
});

url - string - full url to the RPC Endpoint Server
sendCredentials - string - when to send things like cookies with a request, passes arguments to the credentials init argument in the fetch API https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters

Returns an instance of the RPC client

listMethods

List all remote methods on a server

const methods = await client.listMethods()

Returns a promise that resolves with a list of the remote methods

call

const result = await client.call(name, args)

name - string - name of the remote RPC endpoint
args - array or object - arguments to pass to the remote RPC endpoint

Returns a promise that resolves with the result and rejects with an error.

Error Handling

When calling a remote function with call there are different categories of responses:

Success

This is the typical success case

statusCode = 200
result = {} // JSON

Fail (Handled)

An error triggered from createError:

statusCode = 400
result = {
  error: 'string',
  code: 1000, // or some custom code
  handled: true,
}

Fail (Unhandled)

An error triggered from errorMiddleware:

statusCode = 500
result = {
  error: 'string',
  code: 1000, // or some custom code
  handled: true,
}

Fail (Unexpected)

If the errorMiddleware is not hooked up, or something unexpected happened the original error will be thrown.

Readme

Keywords

Package Sidebar

Install

npm i @bufferapp/micro-rpc-client

Weekly Downloads

94

Version

1.4.3

License

MIT

Unpacked Size

7.29 kB

Total Files

5

Last publish

Collaborators

  • davidluhr
  • egomezd
  • jacobchadwell
  • philippemiguet
  • josemdev
  • msanroman
  • daisymarie128
  • hamstu
  • stevenc81
  • bufferbot
  • mayauribe
  • esclapes
  • ay8s
  • mickmahady
  • dinostheo
  • hitherejoe
  • dace
  • erickhun
  • kmbriseno
  • kiriappeee
  • cmunozgar
  • peteremilbuffer
  • arekpn
  • abeeb
  • buffermw