Get IPFS
A one-stop shop for loading an ipfs instance into a webpage.
Attempts to load ipfs in the following order and returns the result in a Promise:
window.ipfs.enable
: the current window.ipfs
api. Available if the user is using Opera or has the ipfs-companion extension installed.window.ipfs
: the old window.ipfs
api. Does not include enabling permissions all at once.js-ipfs
: an in-browser ipfs node that communicates via WebRTC/Websockets. The js-ipfs
code is only loaded if required. Can be configured using the jsIpfs
setting.
Usage
import getIpfs from 'get-ipfs'
const ipfs = await getIpfs(config)
Config
{
permissions: ['id', 'version', 'add', 'cat', 'dag', 'swarm'],
peers: [],
browserPeers: [],
localPeers: [],
jsIpfs: "https://unpkg.com/ipfs@latest/dist/index.min.js",
jsIpfs: async () => await import("ipfs"),
jsIpfs: () => Promise.resolve(Ipfs)
}
Testing
Tests coming soon!!
- Run
npm i
- Run tests with:
npm run test
- Continuously watch with
npm run test:watch
Notes
This repo currently makes use of types from typestub-ipfs.
Give your support here for types to be merged into js-ipfs
or DefinitelyTyped
.
This repo is similar to ipfs-provider. One big difference is that ipfs-provider
doesn't use ES6 syntax so it can't be used without a module bundler.