UNPKG

assertthat

Version:
37 lines (32 loc) 970 B
import { Diff } from '../Diff'; import { findAdditions } from '../findAdditions'; import { size } from '../../size/typeAware/size'; import { sum } from '../../utils/sum'; import { mapDiff, MapDiff } from './MapDiff'; const findMapDiffAdditions = function (diff: MapDiff): MapDiff { const filteredChanges = new Map( [ ...diff.changes.entries() ]. map( ([ key, change ]): [string, Diff] => [ key, findAdditions(change) ] ). filter(([ , change ]): boolean => change.cost > 0) ); const keptAdditionsCost = sum( [ ...diff.additions.values() ]. map((addition): number => size(addition)) ); const keptChangesCost = sum( [ ...filteredChanges.values() ]. map((change): number => change.cost) ); return mapDiff({ cost: keptAdditionsCost + keptChangesCost, additions: diff.additions, changes: filteredChanges, omissions: new Map(), equal: new Map() }); }; export { findMapDiffAdditions };