From 8f378a36a89d2094714c2d32419a78fd0b14b857 Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Thu, 11 Jul 2019 13:12:58 +0100 Subject: [PATCH] feat: add support for js-ipfs dag api and also some tests (#957) * feat: add support for js-ipfs dag api and also some tests * test: move tests to interface suite * chore: update interface-ipfs-core dep License: MIT Signed-off-by: Alan Shaw * chore: update interface-ipfs-core License: MIT Signed-off-by: Alan Shaw --- package.json | 3 ++- src/dag/get.js | 7 +++++-- test/dag.spec.js | 13 ++++++------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 96f647d95..8e9142c11 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "ipfs-utils": "~0.0.3", "ipld-dag-cbor": "~0.15.0", "ipld-dag-pb": "~0.17.3", + "ipld-raw": "^4.0.0", "is-ipfs": "~0.6.1", "is-pull-stream": "0.0.0", "is-stream": "^2.0.0", @@ -85,7 +86,7 @@ "cross-env": "^5.2.0", "dirty-chai": "^2.0.1", "go-ipfs-dep": "~0.4.21", - "interface-ipfs-core": "~0.107.0", + "interface-ipfs-core": "^0.107.1", "ipfsd-ctl": "~0.43.0", "nock": "^10.0.2", "stream-equal": "^1.1.1" diff --git a/src/dag/get.js b/src/dag/get.js index c46ada33c..d0a1dac13 100644 --- a/src/dag/get.js +++ b/src/dag/get.js @@ -2,6 +2,7 @@ const dagPB = require('ipld-dag-pb') const dagCBOR = require('ipld-dag-cbor') +const raw = require('ipld-raw') const promisify = require('promisify-es6') const CID = require('cids') const waterfall = require('async/waterfall') @@ -9,7 +10,8 @@ const block = require('../block') const resolvers = { 'dag-cbor': dagCBOR.resolver, - 'dag-pb': dagPB.resolver + 'dag-pb': dagPB.resolver, + raw: raw.resolver } module.exports = (send) => { @@ -48,7 +50,7 @@ module.exports = (send) => { const dagResolver = resolvers[ipfsBlock.cid.codec] if (!dagResolver) { - const error = new Error('ipfs-http-client is missing DAG resolver for "' + ipfsBlock.cid.codec + '" multicodec') + const error = new Error(`Missing IPLD format "${ipfsBlock.cid.codec}"`) error.missingMulticodec = ipfsBlock.cid.codec return cb(error) } @@ -59,6 +61,7 @@ module.exports = (send) => { } catch (err) { return cb(err) } + cb(null, res) } ], callback) diff --git a/test/dag.spec.js b/test/dag.spec.js index 1b0cfc683..eb69a959c 100644 --- a/test/dag.spec.js +++ b/test/dag.spec.js @@ -68,16 +68,15 @@ describe('.dag', function () { }) }) - it('should callback with error when missing DAG resolver for raw multicodec', (done) => { - ipfs.dag.put(Buffer.from([0, 1, 2, 3]), { - // CIDv1 with multicodec = raw - cid: new CID('bafkreigh2akiscaildcqabsyg3dfr6chu3fgpregiymsck7e7aqa4s52zy') - }, (err, cid) => { + it('should callback with error when missing DAG resolver for multicodec from requested CID', (done) => { + ipfs.block.put(Buffer.from([0, 1, 2, 3]), { + cid: new CID('z8mWaJ1dZ9fH5EetPuRsj8jj26pXsgpsr') + }, (err, block) => { expect(err).to.not.exist() - ipfs.dag.get(cid, (err, result) => { + ipfs.dag.get(block.cid, (err, result) => { expect(result).to.not.exist() - expect(err.message).to.equal('ipfs-http-client is missing DAG resolver for "raw" multicodec') + expect(err.message).to.equal('Missing IPLD format "git-raw"') done() }) })