append-batch

0.0.2 • Public • Published

append-batch

append stuff to a log. It's important that we can reason about the order, so do not perform parallel writes.

To use this, pass in a function that processes a single batch.

Example

an batch append on top of leveldb, using timestamps as keys.

var Append = require('append-batch')
var timestamp = require('monotonic-timestamp')
var db = level(path...) //example with leveldb.
 
var append = Append(function (batch, cb) {
  var ops = []
 
  function add (value) {
    opts.push({key: Date.now(), value: value, type: 'put'}
  }
  batch.forEach(function (value) {
    if(Array.isArray(value) value.forEach(add)
    else add(value)
  })
 
  db.batch(opts, cb)
})
 
//append a single value
append({foo: 'bar'}, function (err) {
  //the value is definitely written by now
})
 

api

Append(writeBatch(values, cb)) => append(value, cb)

create an append function. writeBatch is a function that takes an array of values or arrays of values (which represents a batch operation)

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i append-batch

Weekly Downloads

6,787

Version

0.0.2

License

MIT

Last publish

Collaborators

  • regular
  • christianbundy
  • arj03
  • dominictarr