1234567891011121314151617181920212223242526272829303132333435363738394041 |
- var util = require('util')
- , deep = require('..')
- ;
- var lhs = {
- name: 'my object',
- description: 'it\'s an object!',
- details: {
- it: 'has',
- an: 'array',
- with: ['a', 'few', 'elements']
- }
- };
- var rhs = {
- name: 'updated object',
- description: 'it\'s an object!',
- details: {
- it: 'has',
- an: 'array',
- with: ['a', 'few', 'more', 'elements', { than: 'before' }]
- }
- };
- var differences = deep.diff(lhs, rhs);
- // Print the differences to the console...
- util.log(util.inspect(differences, false, 99));
- deep.observableDiff(lhs, rhs, function (d) {
- // Apply all changes except those to the 'name' property...
- if (d.path.length !== 1 || d.path.join('.') !== 'name') {
- deep.applyChange(lhs, rhs, d);
- }
- }, function (path, key) {
- var p = (path && path.length) ? path.join('/') : '<no-path>'
- util.log('prefilter: path = ' + p + ' key = ' + key);
- }
- );
- console.log(util.inspect(lhs, false, 99));
|