registryCodebase
uses node:fs
The registry's own codebase, holding what it mirrors: at registryDir (made if need be).
import { Codebase, openApart } from "#codebase/tcmts/cli/codebase"; import { registryDir, registryOpened } from "#codebase/tcmts/registry"; import fs from "node:fs"; import path_1 from "node:path"; export function registryCodebase(): Codebase { const dir = registryDir(); const open = registryOpened.get(dir); if (open) return open; const made = fs.existsSync(path_1.join(dir, ".tcm", "codebase.sqlite")) ? openApart(dir) : (() => { fs.mkdirSync(dir, { recursive: true }); const session = process.env.TCM_BRANCH; delete process.env.TCM_BRANCH; try { return Codebase.init(dir); } finally { if (session !== undefined) process.env.TCM_BRANCH = session; } })(); registryOpened.set(dir, made); return made; }
uses
- tcmts.cli.codebase.Codebase
- tcmts.cli.codebase.openApart
- tcmts.registry.registryDir
- tcmts.registry.registryOpened