angular-cached-resource
Version:
An AngularJS module to interact with RESTful resources, even when browser is offline
36 lines (34 loc) • 1.25 kB
JavaScript
// Generated by CoffeeScript 1.7.1
var modifyObjectInPlace;
module.exports = modifyObjectInPlace = function(oldObject, newObject, cachedObject) {
var key, localChange, localChanges, _i, _j, _len, _len1, _ref, _ref1, _results;
_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);
_results = [];
for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
key = _ref1[_j];
if (key[0] !== '$') {
if (angular.isObject(oldObject[key]) && angular.isObject(newObject[key])) {
_results.push(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)) {
_results.push(oldObject[key] = newObject[key]);
} else {
_results.push(void 0);
}
}
}
}
return _results;
};