in functions/src/plugins/size.ts [307:336]
generateArtifactComparisons(oldArtifacts: BuildArtifact[], newArtifacts: BuildArtifact[], config: SizeConfig) {
const baselines = new Map(oldArtifacts.map<[string, BuildArtifact]>(a => [a.path, a]));
const [threshold, percentage] = this.parseBytes(config.maxSizeIncrease);
if (threshold === NaN) {
this.logError('Invalid size configuration');
return [];
}
const comparisons: BuildArtifactDiff[] = [];
for (const current of newArtifacts) {
const baseline = baselines.get(current.path);
if (!baseline) {
continue;
}
const delta = current.size - baseline.size;
comparisons.push({
current,
baseline,
delta,
failed: delta > (percentage ? threshold * baseline.size : threshold),
});
}
comparisons.sort((a, b) => b.delta - a.delta);
return comparisons;
}