mountable-dwtrie
v2.0.0
Published
A dwtrie wrapper that supports mounting of other dwtries
Downloads
13
Readme
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 keyopts
can contain anydwtrie
options
trie.mount(path, key, opts, cb)
path
is the mountpointkey
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