runDepsDependentsDocs

tcmts.cli.run.runDepsDependentsDocs · #u2e4qh4g · term · runs on the server

uses tcmts.cli.main.execute, which uses tcmts.cli.help.usageError, which uses tcmts.cli.help.usageOf, which uses tcmts.cli.style.bold, which uses node:util

Runs tcm deps, tcm dependents and tcm docs.

import { routeDependents, routeDeps, routeDocs } from "#codebase/tcmts/cli/commands";
import { renderDoc } from "#codebase/tcmts/cli/docs";
import { dependents, deps, execute } from "#codebase/tcmts/cli/main";
import type { Context } from "#codebase/tcmts/cli/run";
import { dim } from "#codebase/tcmts/cli/style";
import { chooseName } from "#codebase/tcmts/cli/ui";
import { parse } from "@bomb.sh/router";

export async function runDepsDependentsDocs({ cb, rest, ...cx }: Context): Promise<number> {
  const cmd = cx.cmd as "deps" | "dependents" | "docs";
  const { model } = execute(
    cmd,
    parse({ deps: routeDeps, dependents: routeDependents, docs: routeDocs }[cmd](), { argv: rest }),
  );
  const name =
    model.name ??
    (await chooseName(
      cb,
      `${cmd} <name>`,
      cmd === "docs" ? "Documentation for?" : cmd === "deps" ? "What uses what?" : "Who uses what?",
    ));
  if (cmd === "deps") deps(cb, name);
  else if (cmd === "dependents") dependents(cb, name);
  else
    console.log(
      renderDoc(cb, cb.store.getDef(cb.lookupOne(name))!, { evaluate: true })?.markdown ??
        dim("no documentation"),
    );
  return 0;
}

uses

used by