Kiira
ChevronDown
Github

Per-glob overrides

Use Kiira overrides to set compiler options like jsxImportSource per glob, so docs spanning multiple frameworks (React, Solid, Preact) each compile correctly. Kiira runs a separate TS program per option set and can detect the framework automatically.

When you need overrides

Some doc sites cover multiple frameworks — a React guide, a Solid guide, a Preact guide — all in one repository. Each needs different compiler options, most commonly a different jsxImportSource so JSX compiles against the right runtime. The overrides option lets you set compiler options per glob.

import { defineConfig } from "kiira-core"
export default defineConfig({
include: ["docs/**/*.mdx"],
overrides: [
{
include: ["docs/solid/**/*.mdx"],
jsxImportSource: "solid-js",
},
{
include: ["docs/preact/**/*.mdx"],
jsxImportSource: "preact",
},
],
})

Files under docs/solid/ are checked with Solid's JSX runtime, files under docs/preact/ with Preact's, and everything else with your base config.

How it works

For every distinct set of compiler options, Kiira runs a separate TypeScript program. Files matched by an override join the program for that option set; unmatched files use the base program. This keeps each framework's snippets type-checking against the correct runtime without cross-contamination.

Overriding defaultGroup per glob

Besides compiler options, an override can carry defaultGroup to opt a subtree in or out of file-level grouping. The last matching override wins, so you can file-group your guides while keeping a reference section isolated:

export default defineConfig({
include: ["docs/**/*.{md,mdx}"],
defaultGroup: "file",
overrides: [{ include: ["docs/reference/**"], defaultGroup: "none" }],
})

See Grouping snippets for what file-level grouping does.

Automatic framework detection

Kiira also detects the framework from the file path and from compilation failures. When a JSX snippet fails with TypeScript's TS7026 (JSX element implicitly has type any because no interface JSX.IntrinsicElements exists) — the classic symptom of the wrong JSX runtime — Kiira suggests an override.

Running kiira check --fix then writes that override into your config for you, so subsequent runs compile those files against the right framework automatically.