{
  "exclude": ["node_modules", "**/tests"],
  "include": [
    "src/"
  ],
  "compilerOptions": {
    // match output dir to input dir. e.g. dist/index instead of dist/src/index
    "rootDir": "./src",
    "outDir": "build",

    "module": "commonjs",
    "target": "ESNext",
    "lib": ["esnext"],
    "importHelpers": true,
    "incremental": true,
    "declaration": true, // output .d.ts declaration files for consumers
    "sourceMap": true, // output .js.map sourcemap files for consumers

    // use Node's module resolution algorithm, instead of the legacy TS one
    "moduleResolution": "node",
    // transpile JSX to React.createElement
    "jsx": "react",
    // interop between ESM and CJS modules. Recommended by TS
    "esModuleInterop": true,
    // significant perf increase by skipping checking .d.ts files, particularly those in node_modules. Recommended by TS
    "skipLibCheck": true,
    // error out if import and file system have a casing mismatch. Recommended by TS
    "forceConsistentCasingInFileNames": true,
    "allowSyntheticDefaultImports": true
  }
}
