writeView
uses node:fs
Write a definition's view file (if it changed); where its declaration starts in it. Not for a branch only read
(--branch): where it would be is said, and nothing written.
import type { CodebaseCore } from "#codebase/tcmts/cli/codebase"; import type { Placement } from "#codebase/tcmts/cli/placement"; import { lineOf, srcDir, viewFile, viewText, writeViewsConfig } from "#codebase/tcmts/cli/views"; import { writeIfChanged } from "#codebase/tcmts/loader"; import fs from "node:fs"; import path_1 from "node:path"; export function writeView( cb: CodebaseCore, hash: string, placement?: Placement, ): { file: string; line: number; inserts: number[] } | undefined { const file = viewFile(cb, hash); const p = cb.store.pathsOf(hash)[0]; const v = viewText(cb, p ? cb.lookup(p) : [hash], placement); if (!v) return undefined; if (cb.store.reading === undefined) { // (a session's first: TypeScript in an editor reads it as the project does) if (cb.sessionDir && !fs.existsSync(path_1.join(srcDir(cb), "tsconfig.json"))) writeViewsConfig(cb); writeIfChanged(file, v.text); } return { file, line: lineOf(v.text, v.starts.get(hash) ?? 0), inserts: v.inserts.get(hash) ?? [], }; }
uses
- tcmts.cli.codebase.CodebaseCore
- tcmts.cli.placement.Placement
- tcmts.cli.views.lineOf
- tcmts.cli.views.srcDir
- tcmts.cli.views.viewFile
- tcmts.cli.views.viewText
- tcmts.cli.views.writeViewsConfig
- tcmts.loader.writeIfChanged