2.2.0 • Published 4 years ago

jsonrpc-lite v2.2.0

Weekly downloads
18,398
License
MIT
Repository
github
Last release
4 years ago

JSON-RPC lite

Parse and Serialize JSON-RPC2 messages in node.js or browser.

Inspired by https://github.com/soggie/jsonrpc-serializer

NPM version Build Status Downloads

A implementation of JSON-RPC 2.0 specifications

Install

npm install jsonrpc-lite

API

const jsonrpc = require('jsonrpc-lite')

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.request('123', 'update', {list: [1, 2, 3]})
// {
//   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.notification('update', {list: [1, 2, 3]})
// {
//   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.success('123', 'OK')
// {
//   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.error('123', new jsonrpc.JsonRpcError('some error', 99))
// {
//   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: [jsonrpc.JsonRpcError object]
  }
}, {
  type: 'invalid',
  payload: [jsonrpc.JsonRpcError 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 = new jsonrpc.JsonRpcError('some error', 999)

Class Method: jsonrpc.JsonRpcError.invalidRequest(data)

Class Method: jsonrpc.JsonRpcError.methodNotFound(data)

Class Method: jsonrpc.JsonRpcError.invalidParams(data)

Class Method: jsonrpc.JsonRpcError.internalError(data)

Class Method: jsonrpc.JsonRpcError.parseError(data)

@deadcanaries/kadence@orcproject/orcvite-wallet@fh0/clijsonrpcc@ciondigital/cionstyx-client@infinitebrahmanuniverse/nolb-jsonr@lcnc/nodejsorpcenconvo.sdk.node@everything-registry/sub-chunk-1988@hbgj/common@hbgj/native-api@hbgj/quickapi@hbgj/toolsexpressjs-json-rpcjs_registry_clientvitejs-notthomizvitejs-notthomiz-walletvitejs-notthomiz-ws@react-native-windows/automation-channelvitrakad-spartacuskadence-kimkadjson-rpc-constructor@rocket.chat/apps-enginefullstack-gatsby-theme-bch-walletfullstack-gatsby-theme-bch-wallet-v1@jolocom/sdk-rpc-client@kadenceproject/kadence@jsonrpc2/rpc@jsrpc/rpcteambition-sdk-socketgitple-botgsnnelo@mocobaas/server-sdk@p.network/ptokens-nodejsonrpc2-expressjsonrpcv2@pnetwork-association/ptokens-utils@pointnetwork/kadence@qiwi/json-rpc-common@qiwi/json-rpc-open-rpcide_qsys@openovate/eventrpctoa-netgatsby-theme-bch-walletgatsby-ipfs-web-wallethafas-client-rpc@opengsn/gsn@vite/vitejs@vite/vitejs-wallet@vitelabs/vite.jsnestjs-json-rpc@stacks/blockchain-api-client@statechannels/xstate-walletws-keepalive@yjd-test/quickapi@verady/veranetaide-node-helpersmoleculer-wsmqtt-json-rpcale-iot-hub-mqttnexus-clientnode-rnw-rpcp3-json-rpc@chrishdx/platformio-node-helpersplatformio-node-helpersplatformio-node-helper-codeservercolab-coinjoin-api@connectlive/connectlive-web-sdk@contentacms/contentajsptokens-node@blockstack/ws-rpc-client@akiroz/mqtt-json-rpc@adshares/ads-clientodoots@atek-cloud/atek@atek-cloud/node-rpcboscarqlc.jsservice_jssi-node-helpersrpc-apitestsatoexchange-rpc-api-clientsnapper-consumersnapper-coreemitrpc
2.2.0

4 years ago

2.1.1

4 years ago

2.1.0

4 years ago

2.0.7

5 years ago

2.0.6

5 years ago

2.0.5

5 years ago

2.0.4

5 years ago

2.0.3

5 years ago

2.0.2

5 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.3.1

6 years ago

1.3.0

7 years ago

1.2.4

7 years ago

1.2.3

8 years ago

1.2.2

8 years ago

1.2.1

8 years ago

1.2.0

8 years ago

1.1.2

8 years ago

1.1.1

8 years ago

1.1.0

9 years ago

1.0.0

9 years ago

0.1.0

9 years ago