diff --git a/package.json b/package.json index deeef433d..c5f2e5bad 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "dirty-chai": "^2.0.1", "eslint-plugin-react": "^7.11.1", "go-ipfs-dep": "0.4.19", - "interface-ipfs-core": "~0.101.0", + "interface-ipfs-core": "~0.101.1", "ipfsd-ctl": "~0.42.0", "nock": "^10.0.2", "stream-equal": "^1.1.1" diff --git a/src/files-regular/refs-local-readable-stream.js b/src/files-regular/refs-local-readable-stream.js index 0d8bc15bf..09fddde1d 100644 --- a/src/files-regular/refs-local-readable-stream.js +++ b/src/files-regular/refs-local-readable-stream.js @@ -13,6 +13,8 @@ module.exports = (send) => { send({ path: 'refs/local', qs: opts }, (err, stream) => { if (err) { return pt.destroy(err) } + stream.once('error', (err) => pt.destroy(err)) + pump(stream, through.obj(function (r, enc, cb) { cb(null, { ref: r.Ref, err: r.Err }) }), pt) diff --git a/src/files-regular/refs-readable-stream.js b/src/files-regular/refs-readable-stream.js index 4c9ae2d1f..b5cf69c48 100644 --- a/src/files-regular/refs-readable-stream.js +++ b/src/files-regular/refs-readable-stream.js @@ -20,6 +20,8 @@ module.exports = (send) => { send({ path: 'refs', args, qs: opts }, (err, stream) => { if (err) { return pt.destroy(err) } + stream.once('error', (err) => pt.destroy(err)) + pump(stream, through.obj(function (r, enc, cb) { cb(null, { ref: r.Ref, err: r.Err }) }), pt) diff --git a/src/utils/stream-to-value.js b/src/utils/stream-to-value.js index fa7068d46..d28fd6130 100644 --- a/src/utils/stream-to-value.js +++ b/src/utils/stream-to-value.js @@ -7,14 +7,12 @@ const concat = require('concat-stream') Concatenate a stream to a single value. */ function streamToValue (response, callback) { + let data pump( response, - concat((data) => callback(null, data)), - (err) => { - if (err) { - callback(err) - } - }) + concat((d) => { data = d }), + (err) => callback(err, data) + ) } module.exports = streamToValue