tools/core/readers/report.reader.ts
tools/core/readers/report.reader.ts is a file in Coordination Surface. 21 lines of code and 6 definitions.
import { existsSync, readFileSync, readdirSync } from "node:fs";
import { GENERATED_DIR } from "../constants/path.constants.ts";
import type { ParsedReport } from "../types/report.types.ts";
import { REPORT_SUFFIX } from "../constants/report.constants.ts";
import { resolve } from "node:path";
import { tryParse } from "./json.reader.ts";
export const reportIdOf = function reportIdOf(entry: string): string {
return entry.slice(0, entry.length - REPORT_SUFFIX.length);
};
export const reportEntries = function reportEntries(repoRoot: string): string[] {
const dir = resolve(repoRoot, GENERATED_DIR);
return existsSync(dir) ? readdirSync(dir).filter((entry) => entry.endsWith(REPORT_SUFFIX)) : [];
};
export const reportsIn = function reportsIn(repoRoot: string): ParsedReport[] {
const dir = resolve(repoRoot, GENERATED_DIR);
return reportEntries(repoRoot).flatMap((entry) => {
const path = resolve(dir, entry);
const value = tryParse(readFileSync(path, "utf8"))?.value;
return typeof value === "object" && value !== null ? [{ entry, path, value }] : [];
});
};