From 7861794ef8e4f2905cbaa26587b1c8d437a24cc0 Mon Sep 17 00:00:00 2001 From: Vasco Santos Date: Wed, 4 Apr 2018 10:49:38 +0100 Subject: [PATCH] feat: Provide access to bundled libraries when in browser --- README.md | 10 ++++++++++ package.json | 4 ++++ src/core/index.js | 16 +++++++++++++++- test/core/init.spec.js | 17 ++++++++++++++++- 4 files changed, 45 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ade402ea68..45efb54179 100644 --- a/README.md +++ b/README.md @@ -366,8 +366,18 @@ A set of data types are exposed directly from the IPFS instance under `ipfs.type - [`ipfs.types.PeerId`](https://github.com/libp2p/js-peer-id) - [`ipfs.types.PeerInfo`](https://github.com/libp2p/js-peer-info) - [`ipfs.types.multiaddr`](https://github.com/multiformats/js-multiaddr) +- [`ipfs.types.multibase`](https://github.com/multiformats/multibase) - [`ipfs.types.multihash`](https://github.com/multiformats/js-multihash) - [`ipfs.types.CID`](https://github.com/ipld/js-cid) +- [`ipfs.types.dagPB`](https://github.com/ipld/js-ipld-dag-pb) +- [`ipfs.types.dagCBOR`](https://github.com/ipld/js-ipld-dag-cbor) + +#### `Util` + +A set of utils are exposed directly from the IPFS instance under `ipfs.util`. That way you're not required to import/require the following: + +- [`ipfs.util.crypto`](https://github.com/libp2p/js-libp2p-crypto) +- [`ipfs.util.isIPFS`](https://github.com/ipfs-shipyard/is-ipfs) ## FAQ diff --git a/package.json b/package.json index aa93799263..aab0fbce62 100644 --- a/package.json +++ b/package.json @@ -115,6 +115,8 @@ "ipfs-unixfs": "~0.1.14", "ipfs-unixfs-engine": "~0.27.0", "ipld": "^0.15.0", + "ipld-dag-cbor": "^0.12.0", + "ipld-dag-pb": "^0.13.1", "is-ipfs": "^0.3.2", "is-stream": "^1.1.0", "joi": "^13.1.2", @@ -122,6 +124,7 @@ "joi-multiaddr": "^1.0.1", "libp2p": "~0.19.2", "libp2p-circuit": "~0.1.5", + "libp2p-crypto": "^0.12.1", "libp2p-floodsub": "~0.14.1", "libp2p-kad-dht": "~0.9.0", "libp2p-keychain": "~0.3.1", @@ -141,6 +144,7 @@ "mime-types": "^2.1.18", "mkdirp": "~0.5.1", "multiaddr": "^3.1.0", + "multibase": "^0.4.0", "multihashes": "~0.4.13", "once": "^1.4.0", "path-exists": "^3.0.0", diff --git a/src/core/index.js b/src/core/index.js index d27d178f85..46f8c9bb2c 100644 --- a/src/core/index.js +++ b/src/core/index.js @@ -4,9 +4,14 @@ const BlockService = require('ipfs-block-service') const Ipld = require('ipld') const PeerId = require('peer-id') const PeerInfo = require('peer-info') +const dagCBOR = require('ipld-dag-cbor') +const dagPB = require('ipld-dag-pb') +const crypto = require('libp2p-crypto') +const isIPFS = require('is-ipfs') const multiaddr = require('multiaddr') const multihash = require('multihashes') const PeerBook = require('peer-book') +const multibase = require('multibase') const CID = require('cids') const debug = require('debug') const extend = require('deep-extend') @@ -58,8 +63,11 @@ class IPFS extends EventEmitter { PeerId: PeerId, PeerInfo: PeerInfo, multiaddr: multiaddr, + multibase: multibase, multihash: multihash, - CID: CID + CID: CID, + dagPB: dagPB, + dagCBOR: dagCBOR } // IPFS Core Internals @@ -120,6 +128,12 @@ class IPFS extends EventEmitter { this.lsReadableStream = this.files.lsReadableStreamImmutable this.lsPullStream = this.files.lsPullStreamImmutable + // ipfs.util + this.util = { + crypto: crypto, + isIPFS: isIPFS + } + boot(this) } } diff --git a/test/core/init.spec.js b/test/core/init.spec.js index 58916ecbe4..92c4623d97 100644 --- a/test/core/init.spec.js +++ b/test/core/init.spec.js @@ -10,7 +10,12 @@ const isNode = require('detect-node') const hat = require('hat') const PeerId = require('peer-id') const PeerInfo = require('peer-info') +const dagCBOR = require('ipld-dag-cbor') +const dagPB = require('ipld-dag-pb') +const crypto = require('libp2p-crypto') +const isIPFS = require('is-ipfs') const multiaddr = require('multiaddr') +const multibase = require('multibase') const multihash = require('multihashes') const CID = require('cids') const IPFS = require('../../src/core') @@ -101,8 +106,18 @@ describe('init', () => { PeerId: PeerId, PeerInfo: PeerInfo, multiaddr: multiaddr, + multibase: multibase, multihash: multihash, - CID: CID + CID: CID, + dagPB: dagPB, + dagCBOR: dagCBOR + }) + }) + + it('util', () => { + expect(ipfs.util).to.be.deep.equal({ + crypto: crypto, + isIPFS: isIPFS }) }) })