Follows a changes-feed and processes each entry, storing state in a levelup. Automatically handles resuming the changes processing from where it left off when restarted.
Designed for creating secondary indexes with leveldb but can be used in many different applications.
Construct a new change processor instance.
opts
is an object:
db
(required) - a levelup to store the change state infeed
(required) - achanges-feed
instanceworker
(required) - a function (see below) that processes each changekey
(defaultlatest
) - a key to use to store the change state in thedb
abovedbOptions
(default{valueEncoding: 'utf8'}
) - options to pass to thedb
.get
and.put
calls
example:
var processor = changeProcessor({
db: stateDb,
feed: feed,
worker: worker
})
A function that takes two arguments: (change, cb)
.
change
will be an object with these properties:
change
- this will be a jsNumber
that increments by 1 for every change, starting at1
value
- this will be the change payload that the changes feed writes to you. usually is aBuffer
but depends on the feed
These are the two guaranteed properties. There may be other properties on change
depending on the feed.
To catch errors attach a processor.on('error', errorHandler)
event