ShareCache

tcmts.share.ShareCache · #xkyeno2i · type

What a server keeps between page requests: what depends only on the branch's head (its names, placement, what each definition is for), made once for each head and dropped when it moves; and what never changes (an entry's changes, a release's definitions, the history's namespaces).

import type { Codebase } from "#codebase/tcmts/cli/codebase";
import type { Placement } from "#codebase/tcmts/cli/placement";
import type { EntrySummary, NameTrees } from "#codebase/tcmts/share";

export interface ShareCache {
  /** `make()`'s value, kept under `key` until the branch's head moves */
  atHead<T>(cb: Codebase, key: string, make: () => T): T;
  placement(cb: Codebase): Placement;
  trees(cb: Codebase): NameTrees;
  entries: Map<string, EntrySummary>;
  /** each release's definitions, by its history entry */
  releases: Map<string, Set<string>>;
}

uses

used by