{
  "exclude": ["dist", "node_modules"],
  "compilerOptions": {
    /* Language and Environment */
    "target": "es6" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
    "lib": [
      "es5",
      "es6",
      "dom"
    ] /* Specify a set of bundled library declaration files that describe the target runtime environment. */,

    "experimentalDecorators": true /* Enable experimental support for TC39 stage 2 draft decorators. */,
    "emitDecoratorMetadata": true /* Emit design-type metadata for decorated declarations in source files. */,

    /* Modules */
    "module": "NodeNext" /* Specify what module code is generated. */,
    "moduleResolution": "nodenext" /* Specify how TypeScript looks up a file from a given module specifier. */,

    "outDir": "dist" /* Specify an output folder for all emitted files. */,
    "removeComments": true /* Disable emitting comments. */,

    "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */,
    "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,

    /* Type Checking */
    "strict": true /* Enable all strict type-checking options. */,
    "noUnusedLocals": true /* Enable error reporting when local variables aren't read. */,
    "noImplicitReturns": true /* Enable error reporting for codepaths that do not explicitly return in a function. */,
    "declaration": true,

    "skipLibCheck": true
  }
}
