chore: codify frontend local verification

This commit is contained in:
2026-08-24 19:55:28 +03:00
parent 1fc269adec
commit 11be786943
6 changed files with 75 additions and 31 deletions
+28
View File
@@ -0,0 +1,28 @@
import { readFileSync } from "node:fs";
import { dirname, resolve } from "node:path";
import { fileURLToPath } from "node:url";
const root = resolve(dirname(fileURLToPath(import.meta.url)), "..");
const packageJson = JSON.parse(
readFileSync(resolve(root, "package.json"), "utf8"),
);
const nvmVersion = readFileSync(resolve(root, ".nvmrc"), "utf8").trim();
const expectedMajor = nvmVersion.replace(/^v/, "").split(".")[0];
const expectedEngine = `${expectedMajor}.x`;
if (packageJson.engines?.node !== expectedEngine) {
throw new Error(
`Node runtime contracts disagree: .nvmrc=${nvmVersion}, package.json engines.node=${packageJson.engines?.node ?? "missing"}`,
);
}
const actualVersion = process.versions.node;
const actualMajor = actualVersion.split(".")[0];
if (actualMajor !== expectedMajor) {
console.error(
`Unsupported Node.js runtime: expected ${expectedEngine}, actual ${actualVersion}. Activate .nvmrc before running repository checks.`,
);
process.exit(1);
}
console.log(`Node.js runtime verified: ${actualVersion} (${expectedEngine})`);