Files
MobilityOps/scripts/check-frontend-budget.mjs
NuklearRabbit acd8b82b09
MobilityOps acceptance / backend (push) Failing after 20s
MobilityOps acceptance / frontend (push) Successful in 26s
MobilityOps acceptance / e2e (push) Skipped
M44: harden release integrity and assurance
2026-08-21 18:32:02 +02:00

19 lines
710 B
JavaScript

import { readdir, stat } from "node:fs/promises";
import { join } from "node:path";
const limits = { ".js": 400 * 1024, ".css": 180 * 1024 };
const assets = join(import.meta.dirname, "..", "frontend", "dist", "assets");
const failures = [];
for (const name of await readdir(assets)) {
const extension = Object.keys(limits).find((candidate) => name.endsWith(candidate));
if (!extension) continue;
const bytes = (await stat(join(assets, name))).size;
console.log(`${name}: ${(bytes / 1024).toFixed(1)} KiB / ${limits[extension] / 1024} KiB`);
if (bytes > limits[extension]) failures.push(name);
}
if (failures.length) {
throw new Error(`Frontend asset budget exceeded: ${failures.join(", ")}`);
}