track-changes
v0.1.0
Published
Very simple API for tracking changes to the property of an object for use in debugging.
Downloads
5
Readme
track-changes
Very simple API for tracking changes to the property of an object for use in debugging.
Install with npm
npm i track-changes --save
Examples
This is a basic example showing how you might track changes to a value in your application.
var app = new Changes();
var a = 'a';
app.track('a', 'change #1', a);
a = 'b';
app.track('a', 'change #2', a);
a = 'c';
app.track('a', 'change #3', a);
a = 'd';
app.track('a', 'change #4', a);
console.log(app.getHistory('a'));
// { first: 'a',
// last: 'd',
// 'change #1': 'a',
// 'change #2': 'b',
// 'change #3': 'c',
// 'change #4': 'd' }
Tracking changes to an object
This example just shows how you might track changes to an object after using merge
versus extend
.
var app = new Changes();
// objects with properties to track. These are both the same.
var foo = {b: {c: 'd'}};
var bar = {b: {c: 'd'}};
// We're going to use `merge` on foo, and `extend` on bar
app.track('foo', 'before merge:', foo);
app.track('bar', 'before extend:', bar);
// merge foo, and extend bar
merge(foo, {b: {e: 'f'}});
extend(bar, {b: {e: 'f'}});
// record changes
app.track('foo', 'after merge:', foo);
app.track('bar', 'after extend:', bar);
Results:
console.log(app.getHistory('foo'));
// { first: { b: { c: 'd' } },
// last: { b: { c: 'd', e: 'f' } },
//
// 'before merge:': { b: { c: 'd' } },
// 'after merge:': { b: { c: 'd', e: 'f' } } }
console.log(app.getHistory('bar'));
// { first: { b: { c: 'd' } },
// last: { b: { e: 'f' } },
//
// 'before extend:': { b: { c: 'd' } },
// 'after extend:': { b: { e: 'f' } } }
API
Changes
Create a new instance of Changes
.
var app = new Changes();
.track
Track the value
of key
with a comment
.
key
{String}comment
{String}: Brief comment about wherekey
is being tracked.value
{*}returns
{Object}Changes
: for chaining.
var foo = 'foo';
app.track('foo', 'one', foo);
foo = 'bar';
app.track('foo', 'two', foo);
foo = 'baz';
app.track('foo', 'three', foo);
// get history of tracked changes for `foo`
app.getHistory('foo');
Author
Jon Schlinkert
License
Copyright (c) 2015 Jon Schlinkert
Released under the license
This file was generated by verb on February 21, 2015.