Enrich.js
A library for "enriching" JavaScript objects and arrays with flexible change-tracking, event, and undo/redo functionality.
Installation
npm install enrich-js --save
Usage
Consider this JavaScript object:
var obj = name: 'Matt' details: age: 22 eyes: 'blue' hair: 'brown' ;
This can be "enriched" to give it extra functionality:
obj = ;
We can add some handlers for default "change", "undo" and "redo" events, or for custom events. Here we will add handlers for the default events and use the built-in event-to-string functions:
obj;obj;obj;
Now we can test them by making some changes and then doing a few undos and redos:
objname = 'Matthew';objdetailsage++; //Console readout://this.name changed from "Matt" to "Matthew"//this.details.age changed from 22 to 23 obj; //Note the function chaining //Console readout://this.details.age undone from 23 to 22//this.name undone from "Matthew" to "Matt"//this.name redone from "Matt" to "Matthew"
Contribution
This was primarily created as an exercise for practicing prototypal and functional JavaScript principles. There are currently still a few issues including errors when undoing array methods and is a work in progress. However, I can certainly see a few useful applications in web-based editors and similar scenarios where there is large user input.
Release History
- 0.1 Initial release