{
  "$schema": "https://json.schemastore.org/tsconfig",
  "display": "@epa/tsconfig",
  "compilerOptions": {
    /** Base Options */
    "esModuleInterop": true,
    "skipLibCheck": true,
    "target": "ES2022",
    "lib": ["ES2025", "ES2024", "DOM"],
    "allowJs": true,
    "resolveJsonModule": true,
    "moduleDetection": "force",
    "isolatedModules": true,
    "rootDir": "${configDir}",

    /** Keep TSC performant in monorepos */
    "incremental": true,
    "disableSourceOfProjectReferenceRedirect": true,
    "tsBuildInfoFile": "${configDir}/.cache/tsbuildinfo.json",

    /** Strictness */
    "strict": true,
    "noUncheckedIndexedAccess": true,
    "noUnusedLocals": true,
    "noUncheckedSideEffectImports": true,
    "noFallthroughCasesInSwitch": true,
    "allowUnreachableCode": false,
    "erasableSyntaxOnly": true,
    "noErrorTruncation": true,
    "checkJs": true,

    /** Transpile using Bundler (not tsc) */
    "module": "Preserve",
    "moduleResolution": "Bundler",
    "noEmit": true
  },
  "exclude": ["node_modules", "build", "dist"]
}
