| 1 | { |
| 2 | "exclude": ["node_modules", "dist", "vendor"], |
| 3 | // For `tsc -b -w` / classic-tsserver editors (the Cursor/tsgo LSP watches via |
| 4 | // the client, gated by .vscode/settings.json `files.watcherExclude`). |
| 5 | "watchOptions": { |
| 6 | "watchFile": "useFsEvents", |
| 7 | "watchDirectory": "useFsEvents", |
| 8 | "excludeDirectories": [ |
| 9 | "**/node_modules", |
| 10 | "**/.git", |
| 11 | "**/.claude", |
| 12 | "**/submodules", |
| 13 | "**/.alchemy", |
| 14 | "**/dist" |
| 15 | ] |
| 16 | }, |
| 17 | "compilerOptions": { |
| 18 | "types": ["bun"], |
| 19 | // Enable latest features |
| 20 | "lib": ["ESNext", "DOM"], |
| 21 | "target": "ESNext", |
| 22 | "moduleDetection": "force", |
| 23 | "jsx": "react-jsx", |
| 24 | "allowJs": true, |
| 25 | "resolveJsonModule": true, |
| 26 | "esModuleInterop": true, |
| 27 | "noEmit": true, |
| 28 | // Bundler mode |
| 29 | "module": "Preserve", |
| 30 | "moduleResolution": "Bundler", |
| 31 | "allowImportingTsExtensions": true, |
| 32 | "rewriteRelativeImportExtensions": true, |
| 33 | "verbatimModuleSyntax": true, |
| 34 | // Best practices |
| 35 | "strict": true, |
| 36 | "skipLibCheck": true, |
| 37 | // Resolve project references (notably every `submodules/distilled/packages/*`) |
| 38 | // through their emitted `lib/*.d.ts` instead of redirecting to their |
| 39 | // sources. Without this, editors and `tsc` pull distilled's generated |
| 40 | // SDK sources — hundreds of thousands of lines across 20 packages — |
| 41 | // into the program, which is what makes intellisense crawl. distilled |
| 42 | // builds with `noCheck: true` and gates its own typechecking in its |
| 43 | // own CI, so re-checking its sources from here buys nothing. |
| 44 | "disableSourceOfProjectReferenceRedirect": true, |
| 45 | // Don't eagerly load every referenced composite project into the language |
| 46 | // server on find-all-references/rename — with 6 distilled projects and ~36 |
| 47 | // examples in the solution, eager loading is a multi-GB memory spike. |
| 48 | // Editor-only; no effect on `tsc -b`. |
| 49 | "disableReferencedProjectLoad": true, |
| 50 | "noFallthroughCasesInSwitch": true, |
| 51 | // Some stricter flags (disabled by default) |
| 52 | "noUnusedLocals": false, |
| 53 | "noUnusedParameters": false, |
| 54 | "noPropertyAccessFromIndexSignature": false, |
| 55 | "noImplicitThis": true, |
| 56 | "sourceMap": true, |
| 57 | "declaration": true, |
| 58 | "declarationMap": true, |
| 59 | "noErrorTruncation": true |
| 60 | } |
| 61 | } |