{
  "compilerOptions": {
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,
    "moduleResolution": "node",

    "strict": true,
    "noImplicitReturns": true,
    "forceConsistentCasingInFileNames": true,
    "noFallthroughCasesInSwitch": true,
    "noEmitOnError": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,

    "module": "commonjs",
    "target": "es2017",
    "sourceMap": true,

    "skipLibCheck": true,

    "allowJs": true,
    "checkJs": true,
    "maxNodeModuleJsDepth": 2, // Allow TypeScript to consume JS files in node_modules to infer types

    // Do not transpile JSX with TypeScript, we will do that with Babel.
    // This allows us to use babel-preset-react-optimize to perform optimizations
    // on JSX. Otherwise Babel won't see any JSX and no optimizations will be applied.
    "jsx": "preserve",

    "plugins": [
      {
        "name": "tslint-language-service"
      }
    ]
  }
}
