get-ipfs
TypeScript icon, indicating that this package has built-in type declarations

1.2.0 • Public • Published

Get IPFS

NPM License Build Status Maintainability Built by FISSION Discord Discourse

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:

  1. window.ipfs.enable: the current window.ipfs api. Available if the user is using Opera or has the ipfs-companion extension installed.
  2. window.ipfs: the old window.ipfs api. Does not include enabling permissions all at once.
  3. 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` are enabled if the browser is ipfs-capable (Opera or extension)
  // passed to `window.ipfs.enable` if available
  // prevents a permission dialog from appearing for every action
  permissions: ['id', 'version', 'add', 'cat', 'dag', 'swarm'],
 
  // `peers` is a list of peer multiaddrs to connect to on load
  // to work with the `js-ipfs` fallback, these must have available websocket ports
  peers: [],
 
  // `browserPeers` is a list of peer multiaddrs to connect to only on fallback to an in-browser js-ipfs daemon
  // note: these must be secure websocket or WebRTC addresses
  browserPeers: [],
 
  // `localPeers` is a list of peer multiaddrs to connect to if using a local ipfs daemon (through ipfs companion for instance)
  localPeers: [],
 
  // (optional) Configure how to load js-ipfs. By default this'll be an unpkg url that points to the latest minified distribution.
  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.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.2.0
    1
    • latest

Version History

Package Sidebar

Install

npm i get-ipfs

Weekly Downloads

1

Version

1.2.0

License

MIT

Unpacked Size

95 kB

Total Files

14

Last publish

Collaborators

  • andrewvivash
  • appcypher
  • icidasset
  • quinnwilton
  • bgins-fission
  • expede
  • walkah
  • philipp-fission
  • dholms