changeprocessor
v0.1.0
Published
Compares objects and runs appropriate code for each change found (node.js).
Readme
change processor (node.js)
Makes it easy to compare objects and based on the differences decide what code to run.
Sample
#####JavaScript
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");
done();
});
this.onChange("name.first", function(done) {
console.log("changed - name.first");
done();
})
});
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 doneNote even though we only changed name.first the event for name was raised too.
Examples
The project comes with examples in the examples directory:
node examples/simple
node examples/allinOneFileTests
First install mocha:
npm install mocha -gRun the tests using npm test or:
mocha -R spec spec/testFixture spec/ -w -G --recursiveFuture
- 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
changeTomethods. - Optional built-in logging using winston.
