22 lines
737 B
JavaScript
22 lines
737 B
JavaScript
import { readFileSync } from "node:fs";
|
|
import { gzipSync } from "node:zlib";
|
|
import path from "node:path";
|
|
import { colors } from "./logger.mjs";
|
|
|
|
export const formatSize = (bytes) => {
|
|
if (bytes < 1024) return `${bytes}b`;
|
|
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)}kb`;
|
|
return `${(bytes / (1024 * 1024)).toFixed(2)}mb`;
|
|
};
|
|
|
|
export const reportSize = (outfile, log) => {
|
|
const content = readFileSync(outfile);
|
|
const size = content.length;
|
|
const gzipSize = gzipSync(content).length;
|
|
const filename = path.basename(outfile);
|
|
|
|
log.done(
|
|
`${colors.bright}${filename}${colors.reset} ${colors.gray}${formatSize(size)}${colors.reset} ${colors.dim}(gzip: ${formatSize(gzipSize)})${colors.reset}`,
|
|
);
|
|
};
|