{
  "compilerOptions": {
    //  Needed by `resolveJsonModule`.
    "moduleResolution": "Node",

    // To suppress ts-jest warnings:
    //   ts-jest[config] (WARN) message TS151001: If you have issues related to
    //   imports, you should consider setting `esModuleInterop` to `true` in
    //   your TypeScript configuration file (usually `tsconfig.json`). See
    //   https://blogs.msdn.microsoft.com/typescript/2018/01/31/announcing-typescript-2-7/#easier-ecmascript-module-interoperability
    //   for more information.
    "esModuleInterop": true,

    // Maximize type checking.
    "resolveJsonModule": true,
    "strict": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noUncheckedIndexedAccess": true,
    "forceConsistentCasingInFileNames": true,

    "outDir": "dist",
    "target": "ES6",

    // Emit type definitions (.d.ts) for clients.
    "declarationDir": "dist",
    "declaration": true,

    "sourceMap": true,

    "incremental": true
  },
  "exclude": ["demo"]
}
