mountable-dwtrie
A Hypertrie wrapper that supports mounting of sub-Hypertries.
Usage
A MountableHypertrie can be mounted within another MountableHypertrie by using the mount
command:
const store = dwebx(ram)
const trie1 = new MountableHypertrie(store)
const trie2 = new MountableHypertrie(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-dwtrie
re-exposes the dwtrie
API, with the addition of the following methods (and a different constructor):
const trie = new MountableHypertrie(dwebx, key, opts)
-
dwebx
: any object that implements the dwebx interface. For now, it's recommanded to userandom-access-dwebx
-
key
is the dwtrie key -
opts
can contain anydwtrie
options
trie.mount(path, key, opts, cb)
-
path
is the mountpoint -
key
is the key for the MountableHypertrie 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 dwtrie 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