The two source scans that keep per-type code from quietly going asymmetric,
written as pure functions over a source string so their own tests can feed
them synthetic files.
findGeometrySubsetEaches: an it.each / describe.each /
test.each over a literal list of geometry names that is a STRICT subset
of the four ("three types, mesh forgotten"). Such a list must say why, in
a // geometry-subset: <reason> comment on the line(s) just above it.
exportedNames: the names a module exports, so parallel per-type
modules (commit-<t>-geometry.ts, …) can be diffed.
TypeScript-AST rather than regex for the first: the list is often a named
const declared elsewhere in the file, or the receiver of .map(…), and a
regex over each( cannot follow either.
The two source scans that keep per-type code from quietly going asymmetric, written as pure functions over a source string so their own tests can feed them synthetic files.
it.each/describe.each/test.eachover a literal list of geometry names that is a STRICT subset of the four ("three types, mesh forgotten"). Such a list must say why, in a// geometry-subset: <reason>comment on the line(s) just above it.commit-<t>-geometry.ts, …) can be diffed.TypeScript-AST rather than regex for the first: the list is often a named const declared elsewhere in the file, or the receiver of
.map(…), and a regex overeach(cannot follow either.