rewriteViews

tcmts.cli.views.rewriteViews · #yanhteba · term · runs on the server

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

used by