JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 171
  • Score
    100M100P100Q8549F
  • License MIT

resolve urls, links to a dat key

Package Exports

  • dat-link-resolve
  • dat-link-resolve/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (dat-link-resolve) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

deprecated

More info on active projects and modules at dat-ecosystem.org


dat-link-resolve

resolve urls, links to a dat key using common methods

npm travis standard

Supports

  • Common dat key representations (dat://, etc.)
  • URLs with keys in them (datproject.org/6161616161616161616161616161616161616161616161616161616161616161)
  • hyperdrive-key or dat-key headers
  • Url to JSON http request that returns {key: <dat-key>}
  • Dat-DNS resolution (via dat-dns)

Install

npm install dat-link-resolve

Usage

var datResolve = require('dat-link-resolve')

datResolve(link, function (err, key) {
  console.log('found key', key)
})

API

Link can be string or buffer.

Resolution order:

  1. Validate buffers or any strings with 64 character hashes in them via dat-encoding
  2. Check headers in http request
  3. Check JSON request response for key
  4. Dat-DNS resolution via dat-dns

Refering to dats

Trying to tighten up a bit dat-link-resolve (and its dependencies dat-dns and dat-decode). I am noticing a few inconsistencies as I'm writing dat-shell.

Ideally, I'd like to launch dat-shell like this:

$ dat-shell dat://40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755896cdeb80bd2f9+5/path4

and have it open the dat at version 5 and change directory to /path4.

Currently dat-shell google-fonts-kewitz.hashbase.io/fonts/ fails somewhere in dat-link-resolve.

Examples

Note that dat-link-resolve also supports other methods, such as detection of dat keys in paths and http headers.

Simplest

  • Plain: 40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755896cdeb80bd2f9
  • DNS: pfrazee.hashbase.io

With version

  • Plain: 40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755896cdeb80bd2f9+5
  • DNS: pfrazee.hashbase.io+5

With scheme

With path

  • https: 40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755896cdeb80bd2f9/path1
  • dat: pfrazee.hashbase.io/path2

Combinations

Notes

  1. browsers expect http and https schemes with traditional hostname, not a dat key
  2. browsers expect http and https schemes with traditional hostname, no +5 (version) support

Contributing

Contributions welcome! Please read the contributing guidelines first.

License

MIT