JSON-RPC lite
Parse and Serialize JSON-RPC2 messages in node.js or browser.
Inspired by https://github.com/soggie/jsonrpc-serializer
A implementation of JSON-RPC 2.0 specifications
Install
npm install jsonrpc-lite
API
const jsonrpc =
jsonrpc.request(id, method[, params])
Creates a JSON-RPC 2.0 request object, return JsonRpc object.
id
: {String|Integer}method
: {String}params
: {Object|Array}, optional
const requestObj = jsonrpc// {// jsonrpc: '2.0',// id: '123',// method: 'update',// params: {list: [1, 2, 3]}// }
jsonrpc.notification(method[, params])
Creates a JSON-RPC 2.0 notification object, return JsonRpc object.
method
: {String}params
: {Object|Array}, optional
const notificationObj = jsonrpc// {// jsonrpc: '2.0',// method: 'update',// params: {list: [1, 2, 3]}// }
jsonrpc.success(id, result)
Creates a JSON-RPC 2.0 success response object, return JsonRpc object.
id
: {String|Integer}result
: {Mixed}
const successObj = jsonrpc// {// jsonrpc: '2.0',// id: '123',// result: 'OK',// }
jsonrpc.error(id, error)
Creates a JSON-RPC 2.0 error response object, return JsonRpc object.
id
: {String|Integer}error
: {JsonRpcError}
const errorObj = jsonrpc// {// jsonrpc: '2.0',// id: '123',// error: {code: 99, 'message': 'some error'},// }
jsonrpc.parse(message)
Takes a JSON-RPC 2.0 payload (string) and tries to parse it into a JSON. If successful, determine what object is it (response, notification, success, error, or invalid), and return it's type and properly formatted object.
message
: {String}
return an array, or an object of this format:
single parsed request:
type: 'request' payload: jsonrpc: '2.0' id: 123 method: 'update' params: {}
batch parsed result:
type: 'request' payload: jsonrpc: '2.0' id: '123' method: 'update' params: 1 2 3 type: 'notification' payload: jsonrpc: '2.0' method: 'update' params: _id: 'xxx' type: 'success' payload: jsonrpc: '2.0' id: '123' result: 'OK' type: 'error' payload: jsonrpc: '2.0' id: '123' error: jsonrpcJsonRpcError object type: 'invalid' payload: jsonrpcJsonRpcError object
jsonrpc.parseObject(message)
Takes a JSON-RPC 2.0 payload (Object) and tries to parse it into a JSON. If successful, determine what object is it (response, notification, success, error, or invalid), and return it's type and properly formatted object.
message
: {Object}
return an JsonRpcParsed
object with type
and payload
.
Class: jsonrpc.JsonRpc()
Class: jsonrpc.JsonRpcError(message, code[, data])
Create a JsonRpcError instance.
message
: {String}code
: {Integer}data
: {Mixed} optional
const error = 'some error' 999