bbo
Version:
bbo is a utility library of zero dependencies for javascript.
32 lines (27 loc) • 791 B
JavaScript
;
var is_object = require('./is_object.js');
require('./get_tag.js');
require('./is_array.js');
require('./is_string.js');
require('./is_map.js');
require('./is_set.js');
var is_empty = require('./is_empty.js');
var proper_object = require('./proper_object.js');
var addedDiff = (lhs, rhs) => {
if (lhs === rhs || !is_object(lhs) || !is_object(rhs)) return {};
var l = proper_object(lhs);
var r = proper_object(rhs);
return Object.keys(r).reduce((acc, key) => {
if (l.hasOwnProperty(key)) {
var difference = addedDiff(l[key], r[key]);
if (is_object(difference) && is_empty(difference)) return acc;
return { ...acc,
[key]: difference
};
}
return { ...acc,
[key]: r[key]
};
}, {});
};
module.exports = addedDiff;