A dWebTrie wrapper that supports mounting of sub-dWebTries.
A MountableDWebTrie can be mounted within another MountableDWebTrie by using the mount
command:
const store = dwebstore(ram)
const trie1 = new MountableDWebTrie(store)
const trie2 = new MountableDWebTrie(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`
})
mountable-dwebtrie
re-exposes the dwebtrie
API, with the addition of the following methods (and a different constructor):
dwebstore
: any object that implements the dwebstore interface. For now, it's recommanded to userandom-access-dwebstore
key
is the dwebtrie keyopts
can contain anydwebtrie
options
path
is the mountpointkey
is the key for the MountableDWebTrie 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 dwebtrie methods. Here's what's been implemented so far:
-
get
-
put
-
del
-
batch
-
iterator
-
list
-
createReadStream
-
createWriteStream
-
checkout
-
watch
-
createHistoryStream
-
createDiffStream
MIT