rewriteViews
uses node:fs
Write again the views a session's directory has (those something asked for), as its branch has them now: one whose name is gone, or names something else now, goes.
import type { CodebaseCore } from "#codebase/tcmts/cli/codebase"; import { Placement } from "#codebase/tcmts/cli/placement"; import { hashesOfViewFile, srcDir, writeView, writeViewsConfig } from "#codebase/tcmts/cli/views"; import fs from "node:fs"; import path_1 from "node:path"; export function rewriteViews(cb: CodebaseCore) { const dir = srcDir(cb); if (!fs.existsSync(dir)) return; const placement = new Placement(cb); for (const rel of fs.readdirSync(dir, { recursive: true }) as string[]) { const f = path_1.join(dir, rel); if (!/\.tsx?$/.test(f) || !fs.statSync(f).isFile()) continue; const [hash] = hashesOfViewFile(cb, f); const w = hash ? writeView(cb, hash, placement) : undefined; if (w?.file !== f) fs.rmSync(f, { force: true }); } writeViewsConfig(cb); }
uses
- tcmts.cli.codebase.CodebaseCore
- tcmts.cli.placement.Placement
- tcmts.cli.views.hashesOfViewFile
- tcmts.cli.views.srcDir
- tcmts.cli.views.writeView
- tcmts.cli.views.writeViewsConfig