assertthat
Version:
assertthat provides fluent TDD.
25 lines (24 loc) • 1.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.findObjectDiffAdditions = void 0;
const findAdditions_1 = require("../findAdditions");
const size_1 = require("../../size/typeAware/size");
const sum_1 = require("../../utils/sum");
const ObjectDiff_1 = require("./ObjectDiff");
const findObjectDiffAdditions = function (diff) {
const filteredChanges = Object.fromEntries(Object.entries(diff.changes).
map(([key, change]) => [key, (0, findAdditions_1.findAdditions)(change)]).
filter(([, change]) => change.cost > 0));
const keptAdditionsCost = (0, sum_1.sum)(Object.values(diff.additions).
map((addition) => (0, size_1.size)(addition)));
const keptChangesCost = (0, sum_1.sum)(Object.values(filteredChanges).
map((change) => change.cost));
return (0, ObjectDiff_1.objectDiff)({
cost: keptAdditionsCost + keptChangesCost,
additions: diff.additions,
changes: filteredChanges,
omissions: {},
equal: {}
});
};
exports.findObjectDiffAdditions = findObjectDiffAdditions;