Skip to content

Commit 903b312

Browse files
committed
.
1 parent b5d2a48 commit 903b312

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

.github/generate-dist-files-size-diff.mjs

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,11 @@ function formatBytes(bytes, digits = 2) {
4141
* @returns {number}
4242
*/
4343
function computeDiffPercent(from, to) {
44-
return from === to ? 0 : Number(((from - to) / to * 100 * (from < to ? -1 : 1)).toFixed(2));
44+
if (from === to) {
45+
return 0;
46+
}
47+
48+
return Number(((from - to) / to * -100).toFixed(2));
4549
}
4650

4751
/**
@@ -58,12 +62,15 @@ export function main() {
5862
let output = '<h1>📊 Dist files size difference</h1>\n\n';
5963

6064
const files = [...new Set([...Object.keys(pr), ...Object.keys(base)])].sort().reduce((acc, file) => {
61-
const diff_percent_size = base[file] && !pr[file] ? -100 : (!base[file] && pr[file] ? 100 : (computeDiffPercent(base[file].size, pr[file].size)));
62-
const diff_percent_size_gz = base[file] && !pr[file] ? -100 : (!base[file] && pr[file] ? 100 : (computeDiffPercent(base[file].size_gz, pr[file].size_gz)));
63-
const diff_percent_size_brotli = base[file] && !pr[file] ? -100 : (!base[file] && pr[file] ? 100 : (computeDiffPercent(base[file].size_brotli, pr[file].size_brotli)));
65+
const added = !base[file] && pr[file];
66+
const removed = base[file] && !pr[file];
67+
const diff_percent_size = removed ? -100 : (added ? 100 : (computeDiffPercent(base[file].size, pr[file].size)));
68+
const diff_percent_size_gz = removed ? -100 : (added ? 100 : (computeDiffPercent(base[file].size_gz, pr[file].size_gz)));
69+
const diff_percent_size_brotli = removed ? -100 : (added ? 100 : (computeDiffPercent(base[file].size_brotli, pr[file].size_brotli)));
6470

6571
if (diff_percent_size !== 0 && diff_percent_size_gz !== 0 && diff_percent_size_brotli !== 0) {
6672
acc.set(file, {
73+
state: added ? 'added' : (removed ? 'removed' : 'changed'),
6774
diff_percent_size,
6875
diff_percent_size_gz,
6976
diff_percent_size_brotli
@@ -85,11 +92,11 @@ export function main() {
8592
<tbody>`;
8693
for (const [file, details] of files.entries()) {
8794
output += `<tr>
88-
<td><code>${file}</code></td>
95+
<td><code>${file}</code> ${details.state === 'added' ? '(new)' : (details.state === 'removed' ? '(deleted)' : '')}</td>
8996
<td>
90-
Size: <code>${formatBytes(base[file]?.size || 0)}</code> vs <code>${formatBytes(pr[file]?.size || 0)}</code><br>
91-
Gzip: <code>${formatBytes(base[file]?.size_gz || 0)}</code> vs <code>${formatBytes(pr[file]?.size_gz || 0)}</code><br>
92-
Brotli: <code>${formatBytes(base[file]?.size_brotli || 0)}</code> vs <code>${formatBytes(pr[file]?.size_brotli || 0)}</code>
97+
Size: <code>${formatBytes(base[file]?.size || 0)}</code> <code>${formatBytes(pr[file]?.size || 0)}</code><br>
98+
Gzip: <code>${formatBytes(base[file]?.size_gz || 0)}</code> <code>${formatBytes(pr[file]?.size_gz || 0)}</code><br>
99+
Brotli: <code>${formatBytes(base[file]?.size_brotli || 0)}</code> <code>${formatBytes(pr[file]?.size_brotli || 0)}</code>
93100
</td>
94101
<td align="right">
95102
Size: <b>${formatDiffPercent(details.diff_percent_size)}</b><br>

0 commit comments

Comments
 (0)