UNPKG

netlify-cli

Version:

Netlify command line tool

35 lines (31 loc) 880 B
const isEqual = require('lodash/isEqual') module.exports = function compare(oldValues, newValues) { const initialData = { // default everything is equal isEqual: true, // Keys that are different keys: [], // Values of the keys that are different diffs: {}, } const oldKeys = Object.keys(oldValues) const newKeys = Object.keys(newValues) const set = new Set(newKeys.concat(oldKeys)) return [...set].reduce((acc, current) => { // if values not deep equal. There are changes if (!isEqual(newValues[current], oldValues[current])) { return { isEqual: false, keys: acc.keys.concat(current), diffs: { ...acc.diffs, [`${current}`]: { newValue: newValues[current], oldValue: oldValues[current], }, }, } } return acc }, initialData) }