{
    "compilerOptions": {
      "module": "commonjs",
      "moduleResolution": "node",
      "target": "ESNext",
      "lib": ["es2017"],
      "rootDirs": ["../../src/"],

      // This configuration intentionally acts as a base for other TSConfig files.
      // Therefore, it doesn't emit any files.  Extending configurations must disable
      // this flag to ensure builds are emitted by the compiler.
      "noEmit": true,

      "strict": true,
      "sourceMap": true,
      "inlineSources": false,
      "inlineSourceMap": false,
      "removeComments": false,
      "esModuleInterop": true,
      "experimentalDecorators": true,
      "forceConsistentCasingInFileNames": true,
      "strictPropertyInitialization": true,
      "strictNullChecks": true,
      "noImplicitAny": true,

      // stripInternal is disabled due to it causing issues in bundles, wherein types marked as
      // @internal were being elided from the build, even when other parts of the package depended
      // upon them.  See: <https://github.com/freshgum-bubbles/typedi/issues/146>
      "stripInternal": false
    },
    "exclude": [
      "../../build",
      "../../node_modules",
      "../../sample",
      "../../**/*.spec.ts",
      "../../test/**",
      "../../docs",
      "../../website/**",
      "../../dist"
    ],
    "include": [
      "../../src/"
    ]
  }