1.0.0 • Published 4 years ago
@web4/resolve-bit-path v1.0.0
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_rootproperty in the/bit.jsonfile 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
.htmlsuffix - with an
.mdsuffix - with an
/index.htmlsuffix - with an
/index.mdsuffix
It will look for a folder to be returned at the given path.
It will look for the
fallback_pageproperty in the/bit.json, will return the file for the path:- if it exists as is
- if it exists with the
web_rootprefix
It will throw an
Not Founderror.
License
1.0.0
4 years ago