function formatResourceChangesStats()

in src/helpers/whatif.ts [164:191]


function formatResourceChangesStats(
  builder: ColorStringBuilder,
  resourceChanges: WhatIfChange[],
): void {
  builder.appendLine().append("Resource changes: ");

  if (!resourceChanges.length) {
    builder.append("no change.");
    return;
  }

  const sortedResourceChanges = resourceChanges.sort(
    (a, b) =>
      changeTypeToWeight[a.changeType] - changeTypeToWeight[b.changeType],
  );
  const resourceChangesByChangeType = groupBy(
    sortedResourceChanges,
    x => x.changeType,
  );
  const countByChangeType = entries(resourceChangesByChangeType)
    .map(([key, value]) => ({ key, count: value.length }))
    .filter(x => x.count > 0);
  const changeTypeStats = countByChangeType.map(x =>
    formatChangeTypeCount(x.key, x.count),
  );

  builder.append(changeTypeStats.join(", ")).append(".");
}