🚀 Launch Week Day 4:Introducing the Alert Details Page: A Better Way to Explore Alerts.Learn More →
Socket
Book a DemoInstallSign in
Socket

track-changes

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

track-changes

Very simple API for tracking changes to the property of an object for use in debugging.

latest
Source
npmnpm
Version
0.1.0
Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

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);

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 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.

Keywords

config

FAQs

Package last updated on 21 Feb 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts