listBuilds

tcmts.cli.web.listBuilds · #sdkmxck2 · term · runs on the server

uses node:fs

Builds on disk, newest first (one moved away as it's read, by pruning in another process, isn't).

import type { Codebase } from "#codebase/tcmts/cli/codebase";
import { appsDir, manifestFile } from "#codebase/tcmts/cli/web";
import type { BuildManifest } from "#codebase/tcmts/cli/web";
import fs from "node:fs";

export function listBuilds(cb: Codebase): BuildManifest[] {
  if (!fs.existsSync(appsDir(cb))) return [];
  return fs
    .readdirSync(appsDir(cb))
    .flatMap((h) => {
      try {
        return [JSON.parse(fs.readFileSync(manifestFile(cb, h), "utf8")) as BuildManifest];
      } catch {
        return [];
      }
    })
    .sort((a, b) => b.builtAt.localeCompare(a.builtAt));
}

uses

used by