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.

    Install

    npm i track-changes

    DownloadsWeekly Downloads

    3

    Version

    0.1.0

    License

    MIT

    Last publish

    Collaborators

    • avatar
    • avatar