{
  "compilerOptions": {
    "skipLibCheck": true,
    "baseUrl": ".",
    "paths": {
      // Allows for importing from `opensearch-dashboards` package for the exported types.
      "opensearch-dashboards": ["./opensearch_dashboards"],
      "ui/*": ["src/legacy/ui/public/*"],
      "test_utils/*": ["src/test_utils/public/*"]
    },
    // Support .tsx files and transform JSX into calls to React.createElement
    "jsx": "react",
    // Enables all strict type checking options.
    "strict": true,
    // enables "core language features"
    "lib": [
      // ESNext auto includes previous versions all the way back to es5
      "esnext",
      // includes support for browser APIs
      "dom"
    ],
    // Node 8 should support everything output by esnext, we override this
    // in webpack with loader-level compiler options
    "target": "esnext",
    // Use commonjs for node, overridden in webpack to keep import statements
    // to maintain support for things like `await import()`
    "module": "commonjs",
    // Allows default imports from modules with no default export. This does not affect code emit, just type checking.
    // We have to enable this option explicitly since `esModuleInterop` doesn't enable it automatically when ES2015 or
    // ESNext module format is used.
    "allowSyntheticDefaultImports": true,
    // Emits __importStar and __importDefault helpers for runtime babel ecosystem compatibility.
    "esModuleInterop": true,
    // Allow importing JSON files as modules.
    "resolveJsonModule": true,
    // Resolve modules in the same way as Node.js. Aka make `require` works the
    // same in TypeScript as it does in Node.js.
    "moduleResolution": "node",
    // Disallow inconsistently-cased references to the same file.
    "forceConsistentCasingInFileNames": true,
    // Disable the breaking keyof behaviour introduced in TS 2.9.2 until EUI is updated to support that too
    "keyofStringsOnly": true,
    // Forbid unused local variables as the rule was deprecated by ts-lint
    "noUnusedLocals": true,
    // Provide full support for iterables in for..of, spread and destructuring when targeting ES5 or ES3.
    "downlevelIteration": true,
    // import tslib helpers rather than inlining helpers for iteration or spreading, for instance
    "importHelpers": true,
    // adding global typings
    "types": ["node", "jest", "react"]
  },
  "include": [
    "server/**/*",
    "public/**/*",
    "utils/**/*",
    "models/**/*",
    "test/**/*"
  ],
  "exclude": ["node_modules", "*/node_modules/"]
}
