{
  "compilerOptions": {
    "target": "es2021",
    "lib": ["es2021", "dom"],

    "module": "esnext",
    "moduleResolution": "node",

    "pretty": true,
    "strict": true,
    "sourceMap": true,
    "alwaysStrict": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "strictBindCallApply": true,
    "strictPropertyInitialization": true,
    "useUnknownInCatchVariables": true,
    "noImplicitAny": true,
    "noImplicitThis": true,
    "noImplicitReturns": true,

    "esModuleInterop": true,
    "declaration": true,
    "declarationMap": true,
    "incremental": true,
    "preserveWatchOutput": true,
    "noUncheckedSideEffectImports": true,    
    // TODO: Investigate following errors:
    // - Cannot find module 'rollup/parseAst' or its corresponding type declarations
    "skipLibCheck": true,
    
    // Required to run benchmark command from root directory
    "typeRoots": [
      "node_modules/@types",
      "./types",
      "${configDir}/node_modules/@types",
      "${configDir}/types"
    ],
  }
}
