ShareCache
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
- tcmts.cli.codebase.Codebase
- tcmts.cli.placement.Placement
- tcmts.share.EntrySummary
- tcmts.share.NameTrees