core/reporters/grammar.reporter.ts

core/reporters/grammar.reporter.ts is a file in Code Parse. 25 lines of code and 4 definitions.

import type { BuildKind, BuildResult } from "#types/grammar.types";
import {
    SKIPPED_PREFIX,
    WASM_UNBUILT_PREFIX,
    builtSummary,
    fetchFailedNote,
    noteLine,
} from "#configuration/strings/grammar.strings";
import process from "node:process";

const printNotes = function printNotes(results: readonly BuildResult[], kind: BuildKind, prefix: string): void {
    for (const entry of results.filter((result) => result.kind === kind)) {
        process.stdout.write(noteLine(prefix, entry.note));
    }
};

export const reportBuild = function reportBuild(results: readonly BuildResult[]): boolean {
    const built = results.filter((result) => result.kind === "built").map((result) => result.lang);
    process.stdout.write(builtSummary(built));
    printNotes(results, "skipped", SKIPPED_PREFIX);
    printNotes(results, "wasm-failed", WASM_UNBUILT_PREFIX);
    const fetchFailed = results.filter((result) => result.kind === "fetch-failed");
    for (const result of fetchFailed) {
        process.stderr.write(fetchFailedNote(result.note));
    }
    return fetchFailed.length === 0;
};