{
    // see https://www.typescriptlang.org/tsconfig to better understand tsconfigs
    "extends": "../../tsconfig.json",
    "baseUrl": ".",
    "compilerOptions": {
      "module": "commonjs",
      "lib": [
        "esnext"
      ],
      "importHelpers": true,
      // stricter type-checking for stronger correctness. Recommended by TS
      "strict": true,
      // linter checks for common issues
      "noImplicitReturns": true,
      "noFallthroughCasesInSwitch": true,
      // noUnused* overlap with @typescript-eslint/no-unused-vars, can disable if duplicative
      "noUnusedLocals": true,
      "noUnusedParameters": true,
      // use Node's module resolution algorithm, instead of the legacy TS one
      "moduleResolution": "node",
      "resolveJsonModule": true,
      // 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,
      "types": [
        "mocha",
        "node",
        "chai"
      ],
    },
    "ts-node": {
      "compilerOptions": {
        "require": [
          "tsconfig-paths/register"
        ],
        "module": "commonjs"
      }
    }
  }