@voiceflow/common
Version:
Junk drawer of utility functions
19 lines (18 loc) • 779 B
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getTopLevelDiff = void 0;
const transform_js_1 = __importDefault(require("lodash/transform.js"));
const defaultCompare = (left, right) => left === right;
const getTopLevelDiff = (object, base, compare = defaultCompare) => {
const changes = (object, base) => (0, transform_js_1.default)(object, (result, value, key) => {
if (!compare(value, base[key])) {
// eslint-disable-next-line no-param-reassign
result[key] = value;
}
});
return changes(object, base);
};
exports.getTopLevelDiff = getTopLevelDiff;