1.1.0 • Published 5 years ago
delta-set v1.1.0
DeltaSet
JavaScript Set keeping delta of changes made to it
A DeltaSet
class inherits ES2015 Set
. In addition it keeps changes made to it and has methods
to deal with these changes delta.
import { DeltaSet } from 'delta-set';
// Construct a delta set containing specified elements
// and record their addition.
const deltaSet = new DeltaSet([1, 2, 3]); // [1, 2, 3]
// Remove element and record its removal
deltaSet.delete(2); // [1, 3]
// Add element and record its addition
deltaSet.add(4); // [1, 3, 4]
const otherSet = new Set<number>();
// Replay changes in another set
deltaSet.redelta(otherSet); // otherSet: [1, 3, 4]
// Changes may be reported to receiver function
deltaSet.redelta((add, remove) => console.log('added:', ...add, '; removed:', ...remove));
// Logs: added: 1 3 4 ; removed: 2
// Forget about changes made to delta set
deltaSet.undelta();
// Apply more changes
deltaSet.delta(/* add */ [11, 12], /* remove */ [4]); // [1, 3, 11, 12]
// Replay last changes in another set
deltaSet.redelta(otherSet); // otherSet: [1, 3, 11, 12]
// Remove all elements and record their removal
deltaSet.clear();
deltaSet.redelta((add, remove) => console.log('added:', ...add, '; removed:', ...remove));
// Logs: added: ; removed: 4 1 3 11 12