1.0.0 • Published 6 years ago

dweb-path v1.0.0

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

dweb-path

Build Status dependencies Status JavaScript Style Guide

Utility for parsing, validating and inspecting dweb paths

Currently supported path types:

Install

npm install dweb-path

Usage

With IPFS path

const dwebPath = require('dweb-path')
console.log(dwebPath.ipfs('/ipfs/zdpuArHMUAYi3VtD3f7iSkXxYK9xo687SoNf5stAQNCMzd77k/gif'))

// {
//   ns: 'ipfs',
//   hash: 'zdpuArHMUAYi3VtD3f7iSkXxYK9xo687SoNf5stAQNCMzd77k',
//   path: '/gif'
// }

API

dwebPath.ipfs(input): { ns, hash, path, toString }

Parse an input as an IPFS path and return an object of it's component parts.

Where input can be:

  • String
    • an IPFS path like /ipfs/Qmf1JJkBEk7nSdYZJqumJVREE1bMZS7uMm6DQFxRxWShwD/file.txt
    • an IPNS path like /ipns/yourdomain.name/file.txt
    • a CID like Qmf1JJkBEk7nSdYZJqumJVREE1bMZS7uMm6DQFxRxWShwD
    • a CID and path like Qmf1JJkBEk7nSdYZJqumJVREE1bMZS7uMm6DQFxRxWShwD/file.txt
  • CID - a CID instance
  • Buffer - a Buffer CID

Note that for string values, a missing leading forward slash and/or namespace are also accepted as valid paths.

The return value is an object with the following properties:

  • ns: String - the namespace of the path e.g. "ipfs" or "ipns"
  • hash: String - the content identifier (the bit after the namespace)
  • path: String - the path component of the dweb path (the bit after the hash)
  • toString: Function - (non-enumerable) call this to get the normalized dweb path (missing namespace added and trailing slash removed) as a string
  • toJSON: Function - (non-enumerable) same return value as toString

Notes

  1. When passing a CID instance or a buffer, hash will be encoded as "base58btc" and ns set to "ipfs"
  2. When passing an IPNS path with a domain name, hash will be the domain name

Contribute

Feel free to dive in! Open an issue or submit PRs.

License

MIT © Alan Shaw