objecthistory
❤ Made at @outlandish
🍀 Simple undo and redo for objects.
👉 Use your preferred bundler and transpiler as required.
Example
const input = inputvalue = 'Ziggy'inputvalue = 'Stardust' input$$index //=> 2input //=> [{ value: '' }, { value: 'Ziggy' }] inputinput$$index //=> 1inputvalue //=> 'Ziggy' inputinput$$index //=> 2inputvalue //=> 'Stardust'
Install
npm install --save objecthistory
yarn add objecthistory
Import
// ES2015
// CommonJSvar history =
Usage
history([obj]) : Object
Enhance an object with undo, redo & change history.
- [obj] {Object} (optional, default=
{}
) Object to enhance
Returns enhanced object.
API
An enhanced object has the following methods.
obj.$$index : Number
The current position of the object in the history of changes, which represents the current value of the object.
-
An
undo
moves the cursor backwards in the history. -
A
redo
moves the cursor forwards in the history. -
Any forward history is lost when a new change is made.
obj.$$undo([n]) : Object
Undo n
changes to the object.
- [n] {Number} (optional, default=
1
) Number of redos to apply
obj.$$redo([n]) : Object
Re-apply n
undone changes to the object.
- [n] {Number} (optional, default=
1
) Number of redos to apply
obj.$$history([n]) : Array
Get an array of n
history items.
- [n] {Number} (optional, default=
Infinity
) Number of history items to retrieve
obj.$$historyBackward([n]) : Array
Get an array of n
history items before $$index
.
- [n] {Number} (optional, default=
Infinity
) Number of history items to retrieve
obj.$$historyForward([n]) : Array
Get an array of n
history items after $$index
.
- [n] {Number} (optional, default=
Infinity
) Number of history items to retrieve
Contributing
All pull requests and issues welcome!
If you're not sure how, check out the great video tutorials on egghead.io!