runtime/entrypoints/grammar.entrypoint.ts
runtime/entrypoints/grammar.entrypoint.ts is a file in GovLab Context. 34 lines of code and 4 definitions.
import { FAILURE_EXIT, FLAGS } from "#configuration/constants/invocation.constants";
import {
PAG_CLEAN,
PAG_HEADING,
PAG_REPORT_ONLY,
defectRow,
documentRow,
documentsTotal,
pagFailed,
} from "#configuration/strings/ontology.report.strings";
import { hasFlag, resolveArgv } from "@govlab/argv";
import { PAG_ARGV } from "#configuration/configs/invocation.config";
import { defineCheck } from "#core/factories/check.factory";
import { executableDocuments } from "#core/loaders/document.loader";
import process from "node:process";
import { validateDocuments } from "#core/validators/document.validator";
defineCheck({ detects: [], enforces: ["architecture:schema-validation"] });
const strict = hasFlag(resolveArgv(PAG_ARGV), FLAGS.strict);
const verdicts = validateDocuments(executableDocuments());
const total = verdicts.reduce((sum, verdict) => sum + verdict.defects.length, 0);
const lines = [
PAG_HEADING,
...verdicts.flatMap((verdict) => [
documentRow(verdict.defects.length === 0, verdict.source.relative, verdict.defects.length),
...verdict.defects.map((defect) => defectRow(verdict.source.relative, defect.line, defect.code, defect.token)),
]),
documentsTotal(verdicts.length, total),
];
process.stdout.write(`${lines.join("\n")}\n`);
if (strict && total > 0) {
process.stderr.write(`${pagFailed(total)}\n`);
process.exit(FAILURE_EXIT);
}
process.stdout.write(`${strict ? PAG_CLEAN : PAG_REPORT_ONLY}\n`);