@backrunner/levelatomic v0.1.0
levelatomic
This util will extend levelup instance with some atomic operation methods.
Usage
First of all, install the package from npm.
npm install @backrunner/levelatomicThen wrap your levelup instance like this:
const levelatomic = require('levelatomic');
const levelup = require('levelup');
const leveldown = require('leveldown');
const db = levelatomic(levelup(leveldown(STORAGE_PATH)));API Reference
In the extended methods, key will also be the key for locks, if key is not a string, we will use JSON.stringify to serialize the key.
All extended methods only support Promise, please use Promise to organize your application, not callbacks.
db.supdate
db.supdate(key: any, value: any)
Safely update a data pair in the storage, if the key is not in the database, it will be inserted into the database.
db.spush
db.spush(key: any, item: any)
Safely push an item into an Array (JSON serialized) in the storage. Please ensure the value to the key you pass through is an Array, if not, the method will throw an error.
Also, you should ensure that the item you passed here is a JSON safe object.
If database cannot get the stored array, this method will create one.
db.smerge
db.smerge(key: any, ...source: Array<object>)
Safely merge an object with a stored object, source will be deep merged with the stored one.
All the source you passed here should be a JSON safe object, also the value to the key should be a JSON serialized string from an object.
db.sdel
db.sdel(key: any, cond: function)
Safely remove an object, you can pass a function here to judge if the object has been changed, if the cond function returns false, method will throw an erro with objChanged property, the value of the property will be true.
License
MIT
4 years ago