{ "compilerOptions": { "target": "ES2023", "lib": ["ES2023"], "module": "NodeNext", "moduleResolution": "nodenext", "types": ["node"], "strict": true, "noUncheckedIndexedAccess": true, "noImplicitOverride": true, "noFallthroughCasesInSwitch": true, // On here for the same reason `packages/web/tsconfig.json` has always had // them, and turned on because it had not: an unused import or a parameter // nothing reads is how a deleted feature leaves a tail behind, and this // config was the only one not asking. Fifteen had accumulated, including a // `forwardHeaders(req, auth, upgrade)` whose `auth` was threaded from two // call sites and never read. "noUnusedLocals": true, "noUnusedParameters": true, "verbatimModuleSyntax": true, "noEmit": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, "isolatedModules": true }, // The control-plane package too, so `pnpm typecheck` stays the one check that // covers everything rather than becoming one check per package. "include": ["src/**/*.ts", "scripts/**/*.ts", "packages/*/src/**/*.ts", "packages/*/scripts/**/*.ts"], // `packages/web` is the one exception, and it has to be. This config is // `lib: ["ES2023"]` with `types: ["node"]` and no DOM — correct for everything // that runs under `tsx`, and unable to compile a line that mentions `window`. // The web package carries its own config; `pnpm typecheck` runs both. "exclude": ["packages/web"] }