{
  // "include": ["src/**/*.ts"],
  // "exclude": ["src/**/*.test.ts"],

  "compilerOptions": {
    // Incremental builds
    "incremental": true,

    // Type checking
    "strict": true,
    "skipLibCheck": true,
    "useDefineForClassFields": true,
    "exactOptionalPropertyTypes": true,
    "noFallthroughCasesInSwitch": true,
    "noImplicitOverride": true,
    "noImplicitReturns": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noUncheckedIndexedAccess": true,

    // JavaScript support
    "allowJs": false,
    "checkJs": false,

    // Interop constraints
    "forceConsistentCasingInFileNames": true,
    "verbatimModuleSyntax": true,

    // Language and environment

    // Sourcemaps
    "sourceMap": true,

    "strictNullChecks": true,

    "lib": ["ES2022"], // ES2020 in earlier versions
    "module": "ES2022", //ESNext
    "moduleResolution": "Node",
    "target": "ES2022", // ES2020 in earlier versions
    "esModuleInterop": true,
    "types": ["vitest/globals"]
  },
  "ts-node": {
    "esm": true,
    "experimentalSpecifierResolution": "node"
  }
}
