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
More info on active projects and modules at dat-ecosystem.org
dat-link-resolve
resolve urls, links to a dat key using common methods
Supports
- Common dat key representations (
dat://, etc.) - URLs with keys in them (
datproject.org/6161616161616161616161616161616161616161616161616161616161616161) hyperdrive-keyordat-keyheaders- Url to JSON http request that returns
{key: <dat-key>} - Dat-DNS resolution (via dat-dns)
Install
npm install dat-link-resolveUsage
var datResolve = require('dat-link-resolve')
datResolve(link, function (err, key) {
console.log('found key', key)
})API
datResolve(link, callback(err, key))
Link can be string or buffer.
Resolution order:
- Validate buffers or any strings with 64 character hashes in them via dat-encoding
- Check headers in http request
- Check JSON request response for
key - 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/path4and 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
- https: https://40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755896cdeb80bd2f9/
- dat: dat://pfrazee.hashbase.io
With path
- https: 40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755896cdeb80bd2f9/path1
- dat: pfrazee.hashbase.io/path2
Combinations
- 40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755896cdeb80bd2f9+5/path3
- dat://40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755896cdeb80bd2f9+5/path4
- https://40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755896cdeb80bd2f9/path5 (^1)
- https://pfrazee.hashbase.io+5/path6 (^2)
Notes
- browsers expect http and https schemes with traditional hostname, not a dat key
- browsers expect http and https schemes with traditional hostname, no +5 (version) support
Contributing
Contributions welcome! Please read the contributing guidelines first.