Compares objects and runs appropriate code for each change found (node.js).

npm install changeprocessor
2 downloads in the last week
4 downloads in the last month

change processor (node.js)

Makes it easy to compare objects and based on the differences decide what code to run.


var changeProcessor = require('./../lib/changeProcessor')

var personChangeProcessor = changeProcessor(function() {
    this.onChange("name", function(done) {
        // NOTE - Here we might do something like send a message, trigger an authorisation process...
        console.log("changed - name");


    this.onChange("name.first", function(done) {
        console.log("changed - name.first");


var original = {
    name : {
        first: "Bob",
        second: "Marshall"

var updated = {
    name : {
        first: "Robert", // NOTE - Different value
        second: "Marshall"

var allDone = function() { 
    console.log("all done."); 

personChangeProcessor(original, updated, allDone);

The output from this will be

changed - name
changed - name.first
all done

Note even though we only changed name.first the event for name was raised too.


The project comes with examples in the examples directory:

node examples/simple
node examples/allinOneFile


First install mocha:

npm install mocha -g

Run the tests using npm test or:

mocha -R spec spec/testFixture spec/ -w -G --recursive


  • A change to a property could trigger further changes and we should probably then call their appropriate handlers (avoiding cycles).
  • Suitable reporting of errors that occur inside changeTo methods.
  • Optional built-in logging using winston.
npm loves you