Skip to content

chore: green up tsc --noEmit on main#71

Merged
aka-blackboots merged 1 commit into
mainfrom
chore/green-up-typecheck
May 3, 2026
Merged

chore: green up tsc --noEmit on main#71
aka-blackboots merged 1 commit into
mainfrom
chore/green-up-typecheck

Conversation

@aka-blackboots
Copy link
Copy Markdown
Contributor

Summary

Brings npx tsc --noEmit to a clean exit (was exiting with code 2 and 122 lines of errors). Prerequisite for adding a CI workflow that enforces typecheck on every PR.

What changed

Change Why
tsconfig.json — add exclude for src/.../elements/catalog/ Those files reference non-existent ../shared/dual-view / ../shared/geometry modules (~115 TS errors). The dir's index.ts already has every export * commented out, so the files are not part of any build output. Full deletion of the directory deferred to a later PR.
Delete src/.../solids/wall-component/wall-engine.ts (and the now-empty wall-component/ dir) Orphan: zero importers anywhere in src/ or examples/, and method bodies are stubs (no real logic).
ViewportBlock — drop implements IShape clause and unused IShape import The class declared the contract but did not honor it (missing subElements2D / subElements3D). Declaration was misleading; the runtime behavior is unchanged.
single-wall.ts and poly-wall.ts — remove transparent: false and opacity: 1 from the options bag passed to solid.subtract() opengeometry@2.0.9's BooleanExecutionOptions only accepts color, outline, fatOutlines, outlineWidth, kernel. Removed fields match kernel defaults; no behavioral change.

Verification

  • npx tsc --noEmit — exits 0 (was 2, 122 lines of errors)
  • npm run build — green, created dist/ in ~1.1s
  • Reviewer-side: load a few examples to confirm no rendering regression on walls (single-wall.html, polyline-wall.html, wall-opening.html)

Notes

  • This PR does not add CI yet — that's the next PR. This one just makes tsc pass on main.
  • Catalog directory remains physically present for now; only excluded from typecheck. A later PR will decide its fate (implement vs delete).

🤖 Generated with Claude Code

Brings tsc --noEmit to a clean exit so CI can enforce it. Four discrete
fixes plus one tsconfig exclusion:

- tsconfig: exclude src/packages/openplans-core/src/elements/catalog/.
  Those files reference non-existent ../shared/* modules (~115 TS
  errors) and have all index.ts exports commented out, so they are
  not part of any build output. Full deletion deferred.
- Delete src/packages/openplans-core/src/elements/solids/wall-component/
  wall-engine.ts. Class was orphan (no importers anywhere) with stub
  method bodies. Removed the now-empty wall-component/ dir.
- ViewportBlock: drop the unimplemented `implements IShape` clause and
  the now-unused IShape import. The class did not honor the contract
  (missing subElements2D / subElements3D); the declaration was
  misleading.
- single-wall.ts and poly-wall.ts: drop `transparent: false` and
  `opacity: 1` from the options bag passed to solid.subtract().
  opengeometry 2.0.9's BooleanExecutionOptions only accepts color,
  outline, fatOutlines, outlineWidth, kernel — both removed fields
  match the kernel defaults, so runtime behavior is unchanged.

Verified: `npx tsc --noEmit` exits 0, `npm run build` green.
@aka-blackboots aka-blackboots merged commit 26013d9 into main May 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant