TorbatYar/frontend/scripts/validate-delivery-routes.mjs
Mortezakoohjani 7978970783 feat(delivery): add Torbat Driver frontend module with real API wiring.
Ship the delivery platform UI under modules/delivery with thin app routes, BFF proxy, CRUD for phase 10.0-10.1 APIs, and capability-gated future screens.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 12:02:01 +03:30

36 lines
1.2 KiB
JavaScript

#!/usr/bin/env node
/** Validates app/delivery routes are thin re-exports (≤20 lines). */
import { readFileSync, readdirSync, statSync } from "node:fs";
import { join, relative } from "node:path";
import { fileURLToPath } from "node:url";
const ROOT = join(fileURLToPath(new URL(".", import.meta.url)), "..");
const APP = join(ROOT, "app", "delivery");
const MAX_LINES = 25;
function walk(dir, files = []) {
for (const e of readdirSync(dir)) {
const full = join(dir, e);
if (statSync(full).isDirectory()) walk(full, files);
else if (e === "page.tsx") files.push(full);
}
return files;
}
const violations = [];
for (const file of walk(APP)) {
const content = readFileSync(file, "utf8");
const lines = content.split("\n").length;
const rel = relative(ROOT, file);
if (lines > MAX_LINES) violations.push(`${rel}: ${lines} lines`);
if (!content.includes("@/modules/delivery/")) {
violations.push(`${rel}: must re-export from @/modules/delivery/`);
}
}
if (violations.length) {
console.error("Delivery route validation failed:\n" + violations.join("\n"));
process.exit(1);
}
console.log("Delivery routes OK.");