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