Socket
Socket
Sign inDemoInstall

json-rpc-engine

Package Overview
Dependencies
Maintainers
5
Versions
36
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

json-rpc-engine - npm Package Compare versions

Comparing version 5.1.4 to 5.1.5

4

package.json
{
"name": "json-rpc-engine",
"version": "5.1.4",
"version": "5.1.5",
"description": "a tool for processing JSON RPC",

@@ -23,3 +23,3 @@ "license": "ISC",

"async": "^2.0.1",
"eth-json-rpc-errors": "^1.1.0",
"eth-json-rpc-errors": "^2.0.0",
"promise-to-callback": "^1.0.0",

@@ -26,0 +26,0 @@ "safe-event-emitter": "^1.0.1"

'use strict'
const async = require('async')
const SafeEventEmitter = require('safe-event-emitter')
const { serializeError } = require('eth-json-rpc-errors')
const { serializeError, ethErrors } = require('eth-json-rpc-errors')

@@ -23,3 +23,3 @@ class RpcEngine extends SafeEventEmitter {

if (Array.isArray(req)) {
async.map(req, this._handle.bind(this), cb)
this._handleBatch(req, cb)
} else {

@@ -34,2 +34,32 @@ this._handle(req, cb)

async _handleBatch (reqs, cb) {
const batchRes = []
for (const r of reqs) {
try {
let [err, res] = await this._promiseHandle(r)
if (!res) {
if (err) {
throw err
} else {
throw ethErrors.rpc.internal('JsonRpcEngine: Request handler returned neither error nor response.')
}
} else {
batchRes.push(res)
}
} catch (_err) {
// some kind of fatal error
return cb(_err, null)
}
}
cb(null, batchRes)
}
_promiseHandle (req) {
return new Promise((resolve) => {
this._handle(req, (err, res) => {
resolve([err, res])
})
})
}
_handle (_req, cb) {

@@ -71,3 +101,3 @@ // shallow clone request object

const requestBody = JSON.stringify(req, null, 2)
const message = 'JsonRpcEngine - response has no error or result for request:\n' + requestBody
const message = 'JsonRpcEngine: Response has no error or result for request:\n' + requestBody
return cb(new Error(message))

@@ -77,3 +107,3 @@ }

const requestBody = JSON.stringify(req, null, 2)
const message = 'JsonRpcEngine - nothing ended request:\n' + requestBody
const message = 'JsonRpcEngine: Nothing ended request:\n' + requestBody
return cb(new Error(message))

@@ -80,0 +110,0 @@ }

@@ -158,2 +158,7 @@ /* eslint-env mocha */

engine.push(function (req, res, next, end) {
if (req.id === 4) {
delete res.result
res.error = new Error()
return end(res.error)
}
res.result = req.id

@@ -165,3 +170,6 @@ end()

let payloadB = { id: 2, jsonrpc: '2.0', method: 'hello' }
let payload = [payloadA, payloadB]
let payloadC = { id: 3, jsonrpc: '2.0', method: 'hello' }
let payloadD = { id: 4, jsonrpc: '2.0', method: 'hello' }
let payloadE = { id: 5, jsonrpc: '2.0', method: 'hello' }
let payload = [payloadA, payloadB, payloadC, payloadD, payloadE]

@@ -174,2 +182,6 @@ engine.handle(payload, function (err, res) {

assert.equal(res[1].result, 2, 'has expected result')
assert.equal(res[2].result, 3, 'has expected result')
assert.ok(!res[3].result, 'has no result')
assert.equal(res[3].error.code, -32603, 'has expected error')
assert.equal(res[4].result, 5, 'has expected result')
done()

@@ -176,0 +188,0 @@ })

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc