Skip to content

Language support

TypeScript (primary)

TypeScript is cofferdam's primary surface: every flagship check — orphan exports, layering, complexity, suppression hygiene — targets TS / TSX / JS / JSX / MJS / CJS via the oxc parser.

HTML (build-output / plugin surface)

An HTML adapter ships under crates/cofferdam-html, built on tree-sitter-html. It backs two entry points: built-in and plugin checks can target .html files directly under cofferdam check (files: { extensions: ["html"] } for plugins), and .html/.htm files under a built output directory via cofferdam verify --dist. The plugin AstView/LineView surface is the same shape used for TypeScript — findAll("Element"), .attributes, .children — documented in the Author guide and demonstrated end-to-end in SEO-grade checking.

Rust (second language, dogfood)

A Rust adapter ships under crates/cofferdam-rust, exercising the engine's per-language dispatch (cd-91zc). Three checks today:

  • Rust.NoUnwrapInLib — no .unwrap() in library code
  • Rust.NoUnimplementedInNonTest — no unimplemented!() outside tests
  • Rust.MissingPubDoc — public items need doc comments

A CI dogfood job runs cofferdam against its own Rust workspace on every PR.

The Rust adapter is load-bearing for the polylingual architecture pledge: until a second domain existed, "framework, not TS-tool" was theory. It now ships as a working second parser feeding the same Check trait the TS adapter uses.

Future adapters

SQL, IaC, and GraphQL adapters follow the same shape — a parser feeding the shared Check trait and category model. See the phased roadmap.

MIT License