@web4/resolve-bit-path
v1.0.0
Published
Resolves a file within a BIT archive based on how web browsers would load it
Downloads
3
Maintainers
Readme
resolve-bit-path
Resolves a file within a BIT archive based on how web browsers would load it.
const resolveBitPath = require('@web4/resolve-bit-path')
const archive = getABitdrivedriveSomehow();
const rawPath = '/blog/about'
try {
const {type, path, stat} = await resolveBitPath(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
How the algorithm for looking up paths works:
It will look for the
web_root
property in the/bit.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/bit.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.