37 lines
740 B
JavaScript
Raw Normal View History

'use strict'
const { AbstractChainedBatch } = require('abstract-level')
const binding = require('./binding')
const kContext = Symbol('context')
class ChainedBatch extends AbstractChainedBatch {
constructor (db, context) {
super(db)
this[kContext] = binding.batch_init(context)
}
_put (key, value) {
binding.batch_put(this[kContext], key, value)
}
_del (key) {
binding.batch_del(this[kContext], key)
}
_clear () {
binding.batch_clear(this[kContext])
}
_write (options, callback) {
binding.batch_write(this[kContext], options, callback)
}
_close (callback) {
// TODO: close native batch (currently done on GC)
process.nextTick(callback)
}
}
exports.ChainedBatch = ChainedBatch