releaseAt
uses tcmts.cli.manifests.packagesIn, which uses tcmts.cli.config.configValue, which uses node:path
A release: <package>@<version>, or @<version> when the codebase has one package.
import type { Codebase } from "#codebase/tcmts/cli/codebase"; import { releaseSpec } from "#codebase/tcmts/cli/main"; import { findPackage, packagesIn } from "#codebase/tcmts/cli/manifests"; import { UsageError } from "#codebase/tcmts/cli/ui"; export function releaseAt(cb: Codebase, spec: string) { const { name, version } = releaseSpec(spec); const pkg = name ?? findPackage(packagesIn(cb, cb.store.names()), undefined).name; if (!version) throw new UsageError(`which release of ${pkg}? (${pkg}@<version>; see \`tcm releases\`)`); const rel = cb.store.release(pkg, version); if (!rel) throw new UsageError(`no release ${pkg}@${version} (see \`tcm releases\`)`); return rel; }
uses
- tcmts.cli.codebase.Codebase
- tcmts.cli.main.releaseSpec
- tcmts.cli.manifests.findPackage
- tcmts.cli.manifests.packagesIn
- tcmts.cli.ui.UsageError