level-forks
create a forking graph of cascading leveldb namespaces
example
var collect = ;var Forks = ;var level = ;var forks = ;var docs =id: 'A'prev: nullbatch:type: 'put' key: 'a' value: 100type: 'put' key: 'b' value: 200type: 'put' key: 'c' value: 300id: 'B'prev: 'A'batch:type: 'put' key: 'a' value: 123type: 'put' key: 'd' value: 400type: 'del' key: 'c'id: 'C'prev: 'B'batch:type: 'put' key: 'c' value: 333id: 'D'prev: 'B'batch:type: 'put' key: 'e' value: 555;var pending = docslength;docs;{forks;}
output:
{ key: 'a', value: '123' }
{ key: 'b', value: '200' }
{ key: 'c', value: '333' }
{ key: 'd', value: '400' }
api
var Forks =
var forks = Forks(db, opts)
Create a new instance forks
from a levelup or leveldown handle db
.
Options from opts
are passed to levelup so you can set things like
opts.valueEncoding
and opts.keyEncoding
.
var db = forks.create(key, prev=[], opts={}, cb)
Create a new db
identified by key
that link back to the keys in prev
,
if any.
db
is a levelup handle that represents the database at key
in the graph.
When the links are written, cb(err, db)
fires with any errors err
or the
database handle db
.
Set encodings with opts.valueEncoding
or opts.keyEncoding
or:
opts.prebatch(function (rows, cb) {})
- intercept batches, callingcb(err, rows)
with rows to insert on a batch
var db = forks.open(key, opts)
Open an existing levelup handle by its key
.
Set encodings with opts.valueEncoding
or opts.keyEncoding
or:
opts.prebatch(function (rows, cb) {})
- intercept batches, callingcb(err, rows)
with rows to insert on a batch
install
npm install level-forks
license
MIT