track-changes

0.1.0 • Public • Published

track-changes NPM version

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);
 
= 'b';
app.track('a', 'change #2', a);
 
= 'c';
app.track('a', 'change #3', 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 where key 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.

Package Sidebar

Install

npm i track-changes

Weekly Downloads

2

Version

0.1.0

License

MIT

Last publish

Collaborators

  • doowb
  • jonschlinkert