Skip to content

Commit bdcb07d

Browse files
committed
perf: filter out referentially equal diffs before diffId calculation
1 parent 093cfa3 commit bdcb07d

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

src/components/compare/compare.operations.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import {
2929
calculateTotalImpactedSummary,
3030
comparePairedDocs,
3131
createPairOperationsMap,
32+
extractDiffs,
3233
getUniqueApiTypesFromVersions,
3334
} from './compare.utils'
3435
import {
@@ -142,7 +143,8 @@ async function compareCurrentApiType(
142143
const pairedDocs = await calculatePairedDocs(operationPairs, pairContext)
143144
const [operationChanges, tags] = await comparePairedDocs(operationsMap, pairedDocs, apiBuilder, pairContext)
144145

145-
const dedupedChanges = removeObjectDuplicates(operationChanges.flatMap(({ diffs }) => diffs), calculateDiffId)
146+
const allDiffs = extractDiffs(operationChanges)
147+
const dedupedChanges = removeObjectDuplicates(allDiffs, calculateDiffId)
146148
const changesSummary = calculateChangeSummary(dedupedChanges)
147149
const numberOfImpactedOperations = calculateTotalImpactedSummary(
148150
operationChanges.map(({ impactedSummary }) => impactedSummary),

src/components/compare/compare.utils.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,3 +258,7 @@ export function createOperationChange(
258258
...previousOperationFields,
259259
}
260260
}
261+
262+
export function extractDiffs(operationChanges: OperationChanges[]): Diff[] {
263+
return Array.from(new Set(operationChanges.flatMap(({ diffs }) => diffs)))
264+
}

0 commit comments

Comments
 (0)