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.

    Keywords

    none

    Install

    npm i get-ipfs

    DownloadsWeekly Downloads

    15

    Version

    1.2.0

    License

    MIT

    Unpacked Size

    95 kB

    Total Files

    14

    Last publish

    Collaborators

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