level-observed-remove v1.0.0
LevelDB Observed-Remove Map
Eventually-consistent, conflict-free replicated data types (CRDT) implemented using LevelDB.
const level = require('level');
const { LevelObservedRemoveMap } = require('level-observed-remove');
const run = async () => {
const db = level('./optional-db-path');
const alice = new LevelObservedRemoveMap();
const bob = new LevelObservedRemoveMap();
alice.on('publish', (message) => {
setTimeout(() => bob.process(message), Math.round(Math.random() * 1000));
});
bob.on('publish', (message) => {
setTimeout(() => alice.process(message), Math.round(Math.random() * 1000));
});
await alice.set('a', 1);
await bob.add('b', 2);
// Later
await alice.get('b'); // 2
await bob.get('a'); // 1
};
run();
Install
yarn add level-observed-remove
Map API
Table of Contents
LevelObservedRemoveMap
Extends EventEmitter
Class representing a LevelDB Observed Remove Map
Parameters
db
Objectentries
Iterable<[K, V]>options
Options (optional, default{}
)
dump
Return an array containing all of the map's insertions and deletions.
Returns Promise<[Array<any>, Array<any>]>
sync
Emit a 'publish' event containing a specified queue or all of the set's insertions and deletions.
Parameters
Returns void
process
Process an array of insertion and deletions.
Parameters
queue
Array<Array<any>> Array of insertions and deletionsskipFlush
boolean (optional, defaultfalse
)
Returns void
set
Add or update an element with a specified key and value.
Parameters
key
string The key of the element to add to the object.value
any The value of the element to add to the object.id
string (optional, defaultgenerateId()
)
Returns void
get
Returns a specified element.
Parameters
key
string The key of the element to retrieve.
Returns any
delete
Remove the specified element.
Parameters
key
string The key of the element to remove.
Returns void
clear
Removes all elements.
Returns void
has
Indicates whether an element with the specified key exists
Parameters
key
string The key of the element to check.
Returns boolean
size
Number of key-value pairs.
Returns void
6 years ago