@web4/mountable-bittrie
v1.0.0
Published
A Bittrie wrapper that supports mounting of other Bittries
Readme
@web4/mountable-bittrie
A Bittrie wrapper that supports mounting of sub-Bittries.
Usage
A MountableBittrie can be mounted within another MountableBittrie by using the mount command:
const store = chainstore(ram)
const trie1 = new MountableBittrie(store)
const trie2 = new MountableBittrie(store)
trie2.ready(() => {
trie1.mount('/a', trie2.key, ...)
})Assuming trie2 has a value 'hello' at /b/c:
trie1.get('/a/b/c', console.log) // Will return Buffer.from('hello')A mount can be removed by performing a del on the mountpoint :
trie1.del('/a', err => {
trie1.get('/a/b/c', console.log) // Will print `null`
})API
mountable-bittrie re-exposes the bittrie API, with the addition of the following methods (and a different constructor):
const trie = new MountableBittrie(chainstore, key, opts)
chainstore: any object that implements the chainstore interface. For now, it's recommanded to userandom-access-chainstorekeyis the bittrie keyoptscan contain anybittrieoptions
trie.mount(path, key, opts, cb)
pathis the mountpointkeyis the key for the MountableBittrie to be mounted atpath
opts can include:
{
remotePath: '/remote/path', // An optional base path within the mount.
version: 1 // An optional checkout version
}Note: We're still adding support for many bittrie methods. Here's what's been implemented so far:
- [x]
get - [x]
put - [x]
del - [ ]
batch - [x]
iterator - [x]
list - [x]
createReadStream - [ ]
createWriteStream - [x]
checkout - [x]
watch - [ ]
createHistoryStream - [x]
createDiffStream
License
MIT
