1// Prints raw / gzip / brotli sizes and fails if a library exceeds the 5kb raw budget.2import { brotliCompressSync, gzipSync } from "node:zlib";3import { libs } from "./libs.ts";45const BUDGET = 5120;6const names = libs.map((l) => l.name);7let over = false;8for (const name of names) {9 const src = await Deno.readFile(new URL(`../${name}/${name}.js`, import.meta.url));10 const raw = src.length, gz = gzipSync(src).length, br = brotliCompressSync(src).length;11 over ||= raw > BUDGET;12 console.log(`${`${name}.js`.padEnd(11)} raw ${String(raw).padStart(5)} gzip ${String(gz).padStart(5)} br ${String(br).padStart(5)}${raw > BUDGET ? " OVER BUDGET" : ""}`);13}14if (over) Deno.exit(1);