level-serial

1.0.0 • Public • Published

in-memory serialization of operations over a level-db key.

Similar tools: level-lock, level-updater.

Installation

npm install level-serial --save

Usage

level-serial adds a new method to the levelup db object serial

db.serial is like db.get but serialized until the resource is released.

var db = levelup(db_file, {
  valueEncoding: 'json'
});
 
db = serial(db);
 
db.serial('thing', function (err, value, release) {
  value['foo'] = 123;
  db.put('thing', value, release);
});
 
db.serial('thing', function (err, value, release) {
  value['foo'] = 456;
  db.put('thing', value, release);
});

inc example

db.inc = function(key, value, cb) {
  if (typeof value === 'function') {
    cb = value;
    value = 1;
  }
  if (!cb) {
    cb = function(){};
  }
  db.serial(key, function (err, current, release) {
    var new_value = (current || 0) + value;
    db.put(key, new_value, function (err) {
      release();
      if (err) {
        return cb(err);
      }
      cb(null, new_value);
    });
  });
};
 
db.inc('foo', 1);
db.inc('foo', 1);
db.inc('foo', 1, function (err, value) {
  console.log('value is ', value); //always 3.
});

License

MIT 2014 - José F. Romaniello

Readme

Keywords

none

Package Sidebar

Install

npm i level-serial

Weekly Downloads

1

Version

1.0.0

License

MIT

Last publish

Collaborators

  • jfromaniello