# tsconfig.json · versecafe/ashlar

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

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

Visibility: public

Requested revision: 1cf98c101a3945f8ce455d7bf2d1a80c0005cd50

Requested commit: 1cf98c101a3945f8ce455d7bf2d1a80c0005cd50

Commit: 1cf98c101a3945f8ce455d7bf2d1a80c0005cd50

Blob: 5d7ef662fe963e1e7c6e959700333e99bbf56fc5

Size: 1369 bytes

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

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

		// Bundler mode
		"moduleResolution": "bundler",
		"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
		// babel-preset-solid (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"]
}

```
