UNPKG

bbo

Version:

bbo is a utility library of zero dependencies for javascript.

32 lines (27 loc) 791 B
'use strict'; 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;