resolve-dat-path
v2.0.0
Published
Resolves a file within a dat archive based on how web browsers would load it
Downloads
13
Maintainers
Readme
resolve-dat-path
Resolves a file within a dat archive based on how web browsers would load it.
const resolveDatPath = require('resolve-dat-path')
const archive = getAHyperdriveSomehow();
const rawPath = '/blog/about'
try {
const {type, path, stat} = await resolveDatPath(archive, rawPath)
if(type === 'directory') {
console.log('Render the file list from the folder signified by `path`')
} else if(type === 'file') {
console.log('Render the file at `path`')
} else {
console.error('Something went horribly wrong')
}
} catch (err) {
console.log('Show your application 404 page')
}
How it works
History: This Algorithm is based on the work used by hashbase and beaker.
How the algorithm for looking up paths works:
It will look for the
web_root
property in the/dat.json
file to use as prefix, if non-existent it will use/
.It will look for a file to be returned, with following order at:
- exactly the path
- with an
.html
suffix - with an
.md
suffix - with an
/index.html
suffix - with an
/index.md
suffix
It will look for a folder to be returned at the given path.
It will look for the
fallback_page
property in the/dat.json
, will return the file for the path:- if it exists as is
- if it exists with the
web_root
prefix
It will throw an
Not Found
error.