releaseAt

tcmts.cli.main.releaseAt · #45zg3jgi · term · runs on the server

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

used by