// TypeScript config file that matches all source files in the project. This file is read by
// IDEs and TSLint. For IDEs it ensures that `experimentalDecorator` warnings are not showing up.
{
  "compilerOptions": {
    "outDir": "./dist/packages/all",
    "experimentalDecorators": true,
    "module": "es2015",
    "moduleResolution": "node",
    "noUnusedParameters": false,
    "noFallthroughCasesInSwitch": true,
    "noUnusedLocals": false,
    "strictNullChecks": true,
    "noImplicitReturns": true,
    "strictFunctionTypes": true,
    "noImplicitAny": true,
    "noImplicitThis": true,
    "skipLibCheck": true,
    "target": "es2015",
    "lib": ["es5", "es2015", "dom"],
    "types": ["jasmine"],
    "baseUrl": ".",
    "paths": {
      "@angular/cdk": ["./src/cdk"],
      "@angular/cdk/*": ["./src/cdk/*"],
      "@angular/material/*": ["./src/material/*"],
      "@angular/material-experimental/*": ["./src/material-experimental/*"],
      "@angular/material-experimental": ["./src/material-experimental"],
      "@angular/cdk-experimental/*": ["./src/cdk-experimental/*"],
      "@angular/cdk-experimental": ["./src/cdk-experimental"],
      "@angular/material-moment-adapter": ["./src/material-moment-adapter"],
      "@angular/material-examples": ["./src/packages/material-examples"]
    }
  },
  "include": [
    "src/**/*.ts",
    "e2e/**/*.ts",
    "test/**/*.ts",
    "tools/**/*.ts"
  ],
  "exclude": [
    // Exclude files that depend on Node APIs because those depend on the Node types and therefore
    // cause ambiguous imports. For example `setTimeout()` will return a Timer instead of a number.
    "./src/universal-app/prerender.ts",

    // Exclude the API goldens in order to not slow-down IDE's using this tsconfig file
    "tools/public_api_guard/**/*.d.ts",

    // IDEs should not type-check the different node_modules directories of the different packages.
    // This would cause the IDEs to be slower and also linters would check the node_modules.
    "node_modules/",

    // Exclude schematic template files and test cases which aren't valid TS files.
    "src/material/schematics/ng-generate/*/files/**/*",
    "src/cdk/schematics/ng-generate/*/files/**/*",
    "src/cdk/schematics/ng-update/test-cases/**/*",
    "src/material/schematics/ng-update/test-cases/**/*"
  ]
}
