Package Exports
- @bufferapp/micro-rpc-client
- @bufferapp/micro-rpc-client/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@bufferapp/micro-rpc-client) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
deprecated
As of the 23rd of September 2024, micro-rpc-client will be unmaintained and deprecated.
micro-rpc-client
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 = {} // JSONFail (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.