Pre/Post hooks for leveldb
Intercept put/delete/batch operations on levelup.
var levelup = require('levelup')
var timestamp = require('monotonic-timestamp')
var hooks = require('level-hooks')
levelup(file, {createIfMissing: true}, function (err, db) {
hooks()(db)
db.hooks.pre(function (batch) {
batch.forEach(function (e) {
if(!/~log-/.test(e.key.toString())
batch.push({type: 'put', key: '~log-'+timestamp()+'-'+e.type, value: e.key})
})
})
db.hooks.post(function (err, ch) {
console.log(ch)
})
})
Used by map-reduce
to make map-reduce durable across crashes!