# tsconfig.json · versecafe/ashlar

[View on GitCafe](https://git.cafe/versecafe/ashlar/blob/HEAD/tsconfig.json)

Repository: [versecafe/ashlar](https://git.cafe/versecafe/ashlar)

Visibility: public

Requested revision: HEAD

Commit: 2b815fe8bfbdbcd871e87cd735cf104f23deda34

Blob: 734b36d51c3d1f5aec10d54291033326af342ed1

Size: 1407 bytes

[Immutable source](https://git.cafe/versecafe/ashlar/blob/2b815fe8bfbdbcd871e87cd735cf104f23deda34/tsconfig.json?format=markdown)

```
{
	"compilerOptions": {
		// Environment setup & latest features
		"lib": ["ESNext"],
		"target": "ESNext",
		"module": "Preserve",
		"moduleDetection": "force",
		"allowJs": true,

		// Bundler mode
		"moduleResolution": "bundler",
		"customConditions": ["browser"],
		"allowImportingTsExtensions": true,
		"verbatimModuleSyntax": true,
		"noEmit": true,

		// Best practices
		"strict": true,
		"skipLibCheck": true,
		"noFallthroughCasesInSwitch": true,
		"noUncheckedIndexedAccess": true,
		"noImplicitOverride": true,
		"noUnusedLocals": true,
		"noUnusedParameters": true,

		// JSX → universal Solid renderer. `preserve` leaves JSX for
		// @solidjs/babel-plugin (universal) to lower; types resolve from this
		// package's own jsx-runtime.d.ts via self-referencing exports.
		"jsx": "preserve",
		"jsxImportSource": "ashlar",
		"types": ["bun-types"],

		// Resolve the "ashlar" specifier straight to src so demo/ needs no
		// package.json or node_modules of its own — nothing for `bun install`
		// to clobber. Bun honors these paths at runtime too.
		"paths": {
			"ashlar": ["./src/index.ts"],
			"ashlar/ui": ["./src/ui/index.ts"],
			"ashlar/animation": ["./src/animation/index.ts"],
			"ashlar/bun": ["./src/bun.ts"],
			"ashlar/jsx-runtime": ["./jsx-runtime.d.ts"],
			"ashlar/jsx-dev-runtime": ["./jsx-runtime.d.ts"]
		}
	},
	"include": ["src", "scripts", "demo", "jsx-runtime.d.ts"]
}

```
