Files
dealplustech/dealplustech-astro/node_modules/deep-diff/examples/capture_change_apply_elsewhere.js
Kunthawat Greethong 6402d885f9 Complete Astro migration - PDPA compliant website
- Migrated all pages from Next.js to Astro
- Added PDPA-compliant Privacy Policy (Thai)
- Added PDPA-compliant Terms & Conditions (Thai)
- Added Cookie Policy with disclosure (Thai)
- Implemented cookie consent banner (client-side)
- Integrated Umami Analytics placeholder
- Blog system with 3 posts
- Optimized Docker configuration for production
- Static site build (184KB, 11 pages)
- Ready for Easypanel deployment

Backup: /Users/kunthawatgreethong/Gitea/dealplustech-backup-nextjs-20260309.tar.gz
2026-03-09 18:28:01 +07:00

54 lines
1.4 KiB
JavaScript

/*jshint indent:2, laxcomma:true, laxbreak:true*/
var util = require('util')
, assert = require('assert')
, diff = require('..')
, data = require('./practice-data')
;
var i = Math.floor(Math.random() * data.length) + 1;
var j = Math.floor(Math.random() * data.length) + 1;
while (j === i) {
j = Math.floor(Math.random() * data.length) + 1;
}
var source = data[i];
var comparand = data[j];
// source and comparand are different objects
assert.notEqual(source, comparand);
// source and comparand have differences in their structure
assert.notDeepEqual(source, comparand);
// record the differences between source and comparand
var changes = diff(source, comparand);
// apply the changes to the source
changes.forEach(function (change) {
diff.applyChange(source, true, change);
});
// source and copmarand are now deep equal
assert.deepEqual(source, comparand);
// Simulate serializing to a remote copy of the object (we've already go a copy, copy the changes)...
var remote = JSON.parse(JSON.stringify(source));
var remoteChanges = JSON.parse(JSON.stringify(changes));
// source and remote are different objects
assert.notEqual(source, remote);
// changes and remote changes are different objects
assert.notEqual(changes, remoteChanges);
// remote and comparand are different objects
assert.notEqual(remote, comparand);
remoteChanges.forEach(function (change) {
diff.applyChange(remote, true, change);
});
assert.deepEqual(remote, comparand);