releaseFacts
uses tcmts.share.shareCache, which uses tcmts.cli.placement.Placement, which uses node:path
A mirrored release's facts: its manifest's description and licence, where its code runs, what it reaches, and how
its API changed since before (the version before it, mirrored too).
import type { Codebase } from "#codebase/tcmts/cli/codebase"; import { libraryEffects, libraryReport } from "#codebase/tcmts/cli/libraries"; import { highest } from "#codebase/tcmts/cli/semver_checks"; import { changeText, reachesText } from "#codebase/tcmts/registry"; import type { ReleaseFacts } from "#codebase/tcmts/registry"; import { manifestFields, placeMix, shareCache } from "#codebase/tcmts/share"; import type { NameRow } from "#codebase/tcmts/store"; export function releaseFacts( cb: Codebase, rows: NameRow[], before?: { version: string; rows: NameRow[] }, ): ReleaseFacts { const manifest = rows.find((r) => r.path === "manifest" && r.kind === "term"); const fields = manifest ? manifestFields(cb.store.getDef(manifest.hash)?.sourceText ?? "") : {}; const places = placeMix({ cb, cache: shareCache() }, rows, rows.map((r) => r.hash).join(" ")); const report = before && libraryReport(cb, before.rows, rows); const reached = libraryEffects(cb, rows); return { ...(typeof fields.description === "string" ? { description: fields.description } : {}), ...(typeof fields.license === "string" ? { license: fields.license } : {}), definitions: places.anywhere + places.server + places.browser, places, reaches: reachesText(reached), effects: Object.fromEntries(reached.reaches), unknown: reached.unknown, ...(report ? { level: highest(report.findings), change: changeText(report.findings), after: before.version, } : {}), }; }
uses
- tcmts.cli.codebase.Codebase
- tcmts.cli.libraries.libraryEffects
- tcmts.cli.libraries.libraryReport
- tcmts.cli.semver_checks.highest
- tcmts.registry.ReleaseFacts
- tcmts.registry.changeText
- tcmts.registry.reachesText
- tcmts.share.manifestFields
- tcmts.share.placeMix
- tcmts.share.shareCache
- tcmts.store.NameRow