Files
imccyu 19e6f7d907 refactor(tsconfig): single root solution graph over host/client aggregates
Root tsconfig.json becomes a pure solution (files:[] + two references);
the former root host aggregate moves verbatim to tsconfig.host.json.
New tsconfig.base.client.json carries the shared client compiler shape
(jsx/DOM lib/types:[]), and tsconfig.client.json plus the 12
packages/client tsconfigs extend it instead of restating the trio.
tsconfig.build.json is deleted: the solution covers the full emit graph,
absorbing the command-goal typecheck/build drift.

Consumers migrate to the single graph: typecheck/build scripts and the
lefthook pre-push hook run bare `tsc -b` (pre-push now covers the client
side); the run-gates build gate needs typecheck so two concurrent tsc -b
runs cannot race the same tsbuildinfo; ts-project.ts and the standalone
doc-typecheck mode seed tsconfig.host.json explicitly (never the root
solution — flattening host+client into one program collides the cordis
Context merges); verify-cordis-config BFS seeds the root solution alone.

Per missions/tsconfig-single-graph-migration.md §2–§3.
2026-07-23 03:59:05 +08:00

16 lines
684 B
JSON

{
// Solution file: the whole-repo graph for `tsc -b tsconfig.json` and the
// tsserver entry. `extends` carries the base paths for get-tsconfig
// consumers — tsx running examples/ and scripts/ (no nearer tsconfig)
// resolves workspace imports through this file. `files: []` keeps it
// program-less, so the host/client cordis Context merges never meet.
// NEVER add include/files entries, and NEVER flatten this solution into a
// single ts.Program (scripts seed tsconfig.host.json or tsconfig.client.json).
"extends": "./tsconfig.base.json",
"files": [],
"references": [
{ "path": "./tsconfig.host.json" },
{ "path": "./tsconfig.client.json" }
]
}