1.0.0 • Published 6 years ago

level-observed-remove v1.0.0

Weekly downloads
4
License
MIT
Repository
github
Last release
6 years ago

LevelDB Observed-Remove Map

CircleCI npm version codecov

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 Object
  • entries 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

  • queue Array<Array<any>> Array of insertions and deletions

Returns void

process

Process an array of insertion and deletions.

Parameters

  • queue Array<Array<any>> Array of insertions and deletions
  • skipFlush boolean (optional, default false)

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, default generateId())

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