{
  "$schema": "https://json.schemastore.org/tsconfig",
  "display": "UpLeveled Node + React TSConfig",
  // Inspired by Total TypeScript TSConfig Cheat Sheet
  // https://www.totaltypescript.com/tsconfig-cheat-sheet
  "compilerOptions": {
    // Module system, module resolution
    "module": "Preserve",
    "moduleDetection": "force",
    "allowJs": true,
    "esModuleInterop": true,
    "resolveJsonModule": true,
    "verbatimModuleSyntax": true,

    // Standard library
    "lib": ["ES2024", "DOM", "DOM.Iterable"],

    // Output
    "target": "ES2022",
    "noEmit": true,

    // Strictness
    "strict": true,
    "noFallthroughCasesInSwitch": true,
    "noUncheckedIndexedAccess": true,

    // Performance
    "skipLibCheck": true,
    "incremental": true,

    // React
    "jsx": "react-jsx"
  },
  "exclude": ["${configDir}/node_modules", "${configDir}/build"]
}
