objecthistory

1.0.3 • Public • Published

objecthistory

npm version

❤ Made at @outlandish

🍀 Simple undo and redo for objects.

👉 Use your preferred bundler and transpiler as required.

Example

const input = history({ value: '' })
 
input.value = 'Ziggy'
input.value = 'Stardust'
 
input.$$index //=> 2
input.$$history() //=> [{ value: '' }, { value: 'Ziggy' }]
 
input.$$undo()
input.$$index //=> 1
input.value //=> 'Ziggy'
 
input.$$redo()
input.$$index //=> 2
input.value //=> 'Stardust'

Install

npm install --save objecthistory
yarn add objecthistory

Import

// ES2015
import history from 'objecthistory'
// CommonJS
var history = require('objecthistory')

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!

Readme

Keywords

none

Package Sidebar

Install

npm i objecthistory

Weekly Downloads

1

Version

1.0.3

License

MIT

Last publish

Collaborators

  • sdgluck