history-tree v2.0.0
history-tree
Tree for tracking reverts and commits on checkpoints. Checkpoints can nest arbitrarily deep.
api
methods
new HistoryTree() -> history tree
Constructor. Creates a history tree.
historyTree.checkpoint() -> history sub-tree
Synchronous. Creates a new history sub-tree and adds it to the checkpoint stack.
historyTree.commit(cb)
Asynchronous.
Removes the top sub-tree from the checkpoint stack,
calls accept on the sub-tree,
then emits commit on this tree.
Calls the callback with an Error if the stack is empty.
historyTree.revert(cb)
Asynchronous.
Removes the top sub-tree from the checkpoint stack,
calls reject on the sub-tree,
then emits revert on this tree.
Calls the callback with an Error if the stack is empty.
historyTree.accept(cb)
Asynchronous.
Calls commit on this tree for all checkpoints on the stack, in series.
Does NOT call the callback with an Error if the stack is empty.
Emits event accepted on this tree.
historyTree.reject(cb)
Asynchronous.
Calls revert on this tree for all checkpoints on the stack, in series.
Does NOT call the callback with an Error if the stack is empty.
Emits event rejected on this tree.
events
HistoryTree is an AsynchronousEventEmitter. This means that HistoryTree's async api calls won't complete until all event listeners call their callback, unless the listener is synchronous. See the AsynchronousEventEmitter api for usage.
'accepted' -> function(subTree, next)
Called AFTER the accept(cb) on this HistoryTree node.
'rejected' -> function(subTree, next)
Called AFTER the reject(cb) on this HistoryTree node.
'commit' -> function(subTree, next)
Called AFTER every commit(cb) on this HistoryTree node.
'revert' -> function(subTree, next)
Called AFTER every revert(cb) on this HistoryTree node.