@web4/mountable-bittrie
v1.0.0
Published
A Bittrie wrapper that supports mounting of other Bittries
Downloads
13
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-chainstore
key
is the bittrie keyopts
can contain anybittrie
options
trie.mount(path, key, opts, cb)
path
is the mountpointkey
is 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