generateArtifactComparisons()

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;
  }