angular-cached-resource
Version:
An AngularJS module to interact with RESTful resources, even when browser is offline
35 lines (33 loc) • 1.19 kB
JavaScript
// Generated by CoffeeScript 1.10.0
var modifyObjectInPlace;
module.exports = modifyObjectInPlace = function(oldObject, newObject, cachedObject) {
var i, j, key, len, len1, localChange, localChanges, ref, ref1;
ref = Object.keys(oldObject);
for (i = 0, len = ref.length; i < len; i++) {
key = ref[i];
if (!(key[0] !== '$')) {
continue;
}
localChange = cachedObject && (cachedObject[key] == null);
if (!((newObject[key] != null) || localChange)) {
delete oldObject[key];
}
}
ref1 = Object.keys(newObject);
for (j = 0, len1 = ref1.length; j < len1; j++) {
key = ref1[j];
if (key[0] !== '$') {
if (angular.isObject(oldObject[key]) && angular.isObject(newObject[key])) {
modifyObjectInPlace(oldObject[key], newObject[key], cachedObject != null ? cachedObject[key] : void 0);
} else {
localChanges = cachedObject && !angular.equals(oldObject[key], cachedObject[key]);
if (!(angular.equals(oldObject[key], newObject[key]) || localChanges)) {
oldObject[key] = newObject[key];
}
}
}
}
if (newObject.length != null) {
return oldObject.length = newObject.length;
}
};