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
npm install jsonrpc-lite
const jsonrpc = require('jsonrpc-lite')
Creates a JSON-RPC 2.0 request object, return JsonRpc object.
id
: {String|Integer}method
: {String}params
: {Object|Array}, optional
const requestObj = jsonrpc.request('123', 'update', {list: [1, 2, 3]})
// {
// jsonrpc: '2.0',
// id: '123',
// method: 'update',
// params: {list: [1, 2, 3]}
// }
Creates a JSON-RPC 2.0 notification object, return JsonRpc object.
method
: {String}params
: {Object|Array}, optional
const notificationObj = jsonrpc.notification('update', {list: [1, 2, 3]})
// {
// jsonrpc: '2.0',
// method: 'update',
// params: {list: [1, 2, 3]}
// }
Creates a JSON-RPC 2.0 success response object, return JsonRpc object.
id
: {String|Integer}result
: {Mixed}
const successObj = jsonrpc.success('123', 'OK')
// {
// jsonrpc: '2.0',
// id: '123',
// result: 'OK',
// }
Creates a JSON-RPC 2.0 error response object, return JsonRpc object.
id
: {String|Integer}error
: {JsonRpcError}
const errorObj = jsonrpc.error('123', new jsonrpc.JsonRpcError('some error', 99))
// {
// jsonrpc: '2.0',
// id: '123',
// error: {code: 99, 'message': 'some error'},
// }
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}isStrict
: {Boolean} set to true to require the presence of "jsonrpc":"2.0" field. Default: false
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: [jsonrpc.JsonRpcError object]
}
}, {
type: 'invalid',
payload: [jsonrpc.JsonRpcError object]
}]
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}isStrict
: {Boolean} set to true to require the presence of "jsonrpc":"2.0" field. Default: false
return an array, or an object same as jsonrpc.parse
.
Create a JsonRpcError instance.
message
: {String}code
: {Integer}data
: {Mixed} optional
const error = new jsonrpc.JsonRpcError('some error', 999)