verify

tcmts.cli.main.verify · #hwoway2o · term · runs on the server

uses tcmts.cli.style.red, which uses node:util

import type { Codebase } from "#codebase/tcmts/cli/codebase";
import { bold, green, red } from "#codebase/tcmts/cli/style";
import { shortHash } from "#codebase/tcmts/core/hash";

export function verify(cb: Codebase, fresh = false): boolean {
  const r = cb.verify(fresh);
  for (const p of r.problems) console.log(red(p));
  for (const m of r.mismatches)
    console.log(
      `${red("mismatch")} ${bold(m.name)}: stored ${shortHash(m.stored)}, re-rendered ${shortHash(m.rehashed)}`,
    );
  const ok = !r.problems.length && !r.mismatches.length;
  console.log(
    ok
      ? green(
          `verified ${r.checked} definitions: rendering and re-hashing is the identity${r.already ? ` (${r.checked - r.already} checked again, the rest verified already)` : ""}`,
        )
      : red(
          `\n${r.mismatches.length} mismatch(es), ${r.problems.length} problem(s) in ${r.checked} definitions`,
        ),
  );
  return ok;
}

uses

used by