Socket
Socket
Sign inDemoInstall

json-rpc-engine

Package Overview
Dependencies
Maintainers
4
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.1 to 5.1.3

.babelrc

26

package.json
{
"name": "json-rpc-engine",
"version": "5.1.1",
"version": "5.1.3",
"description": "a tool for processing JSON RPC",
"license": "ISC",
"author": "kumavis",
"main": "src/index.js",

@@ -19,25 +21,13 @@ "types": "src/index.d.ts",

},
"author": "kumavis",
"license": "ISC",
"dependencies": {
"@babel/preset-env": "^7.3.4",
"async": "^2.0.1",
"babelify": "^10.0.0",
"eth-json-rpc-errors": "^1.0.1",
"promise-to-callback": "^1.0.0",
"safe-event-emitter": "^1.0.1"
},
"browserify": {
"transform": [
[
"babelify",
{
"presets": [
"@babel/preset-env"
]
}
]
]
},
"devDependencies": {
"aegir": "^18.2.1",
"@babel/core": "^7.5.5",
"@babel/preset-env": "^7.5.5",
"aegir": "^20.0.0",
"babelify": "^10.0.0",
"browserify": "^16.2.3"

@@ -44,0 +34,0 @@ },

@@ -78,1 +78,4 @@ # RpcEngine

```
That said, `next()` will detect errors on the RPC response, and cause
`end(res.error)` to be called.

@@ -5,3 +5,2 @@ const promiseToCallback = require('promise-to-callback')

function createAsyncMiddleware(asyncMiddleware) {

@@ -8,0 +7,0 @@ return (req, res, next, end) => {

@@ -0,1 +1,4 @@

import { IJsonRpcError } from 'eth-json-rpc-errors/@types'
/** A String specifying the version of the JSON-RPC protocol. MUST be exactly "2.0". */

@@ -15,2 +18,4 @@ export type JsonRpcVersion = "2.0";

interface JsonRpcError<T> extends IJsonRpcError<T> {}
interface JsonRpcRequest<T> {

@@ -43,9 +48,2 @@ jsonrpc: JsonRpcVersion;

interface JsonRpcError<T> {
/** Must be an integer */
code: number;
message: string;
data?: T;
}
type JsonRpcEngineEndCallback = (error?: JsonRpcError<any>) => void;

@@ -52,0 +50,0 @@ type JsonRpcEngineNextCallback = (returnFlightCallback?: (done: () => void) => void) => void;

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

@@ -79,6 +80,2 @@ class RpcEngine extends SafeEventEmitter {

}
function runReturnHandlers (returnHandlers, cb) {
async.eachSeries(returnHandlers, (handler, next) => handler(next), onDone)
}
}

@@ -104,11 +101,18 @@

function next (returnHandler) {
// add return handler
allReturnHandlers.push(returnHandler)
cb()
if (res.error) {
end(res.error)
} else {
// add return handler
allReturnHandlers.push(returnHandler)
cb()
}
}
function end (err) {
// if errored, set the error but dont pass to callback
if (err) {
res.error = serializeError(err)
res._originalError = err
const _err = err || (res && res.error)
// const _err = err
if (_err) {
res.error = serializeError(_err)
res._originalError = _err
}

@@ -127,2 +131,4 @@ // mark as completed

res.error = serializeError(err)
// remove result if present
delete res.result
// return error-first and res with err

@@ -142,9 +148,2 @@ return onDone(err, res)

function serializeError(err) {
return {
code: err.code || -32603,
message: err.stack,
}
}
module.exports = RpcEngine

@@ -87,3 +87,3 @@ /* eslint-env mocha */

it('erroring middleware test', function (done) {
it('erroring middleware test: end(error)', function (done) {
let engine = new RpcEngine()

@@ -101,2 +101,3 @@

assert(res.error, 'does have error on response')
assert(!res.result, 'does not have result on response')
done()

@@ -106,2 +107,40 @@ })

it('erroring middleware test: res.error -> next()', function (done) {
let engine = new RpcEngine()
engine.push(function (req, res, next, end) {
res.error = new Error('no bueno')
next()
})
let payload = { id: 1, jsonrpc: '2.0', method: 'hello' }
engine.handle(payload, function (err, res) {
assert(err, 'did error')
assert(res, 'does have response')
assert(res.error, 'does have error on response')
assert(!res.result, 'does not have result on response')
done()
})
})
it('erroring middleware test: res.error -> end()', function (done) {
let engine = new RpcEngine()
engine.push(function (req, res, next, end) {
res.error = new Error('no bueno')
end()
})
let payload = { id: 1, jsonrpc: '2.0', method: 'hello' }
engine.handle(payload, function (err, res) {
assert(err, 'did error')
assert(res, 'does have response')
assert(res.error, 'does have error on response')
assert(!res.result, 'does not have result on response')
done()
})
})
it('empty middleware test', function (done) {

@@ -241,3 +280,2 @@ let engine = new RpcEngine()

})
})
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