librariesIn

tcmts.cli.libraries.librariesIn · #mo6dn5xp · term · runs anywhere

The libraries this branch holds, from its records: outermost only (a library's own libraries are part of it).

import { librariesOf, librariesRead, RECORD } from "#codebase/tcmts/cli/libraries";
import type { Library } from "#codebase/tcmts/cli/libraries";
import type { Store } from "#codebase/tcmts/store";

export function librariesIn(store: Store): Library[] {
  const records = store.filesNamed(RECORD);
  const key = records.map((r) => `${r.path} ${r.hash}`).join("\n");
  const read = librariesRead.get(store);
  if (read?.key === key) return read.libraries;
  const libraries = librariesOf(records, (h) => store.getDef(h)?.sourceText ?? "");
  librariesRead.set(store, { key, libraries });
  return libraries;
}

uses

used by