{
  "compilerOptions": {
    /* Visit https://aka.ms/tsconfig to read more about this file */

    "target": "es6",                            /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */

    /* Modules */
    "module": "es6",                            /* Specify what module code is generated. */
    "moduleResolution": "node",                 /* Specify how TypeScript looks up a file from a given module specifier. */
    "resolveJsonModule": true,                  /* Enable importing .json files. */
    "lib": [
      "es2022",
      "dom",
      "ES6"
    ],

    /* JavaScript Support */
    "allowJs": true,                            /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */

    /* Emit */
    "declaration": true,                        /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
    "sourceMap": true,                          /* Create source map files for emitted JavaScript files. */
    "outDir": "dist",                           /* Specify an output folder for all emitted files. */

    /* Interop Constraints */
    "isolatedModules": true,                    /* Ensure that each file can be safely transpiled without relying on other imports. */
    "allowSyntheticDefaultImports": true,       /* Allow 'import x from y' when a module doesn't have a default export. */
    "esModuleInterop": true,                    /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
    "forceConsistentCasingInFileNames": true,   /* Ensure that casing is correct in imports. */

    /* Type Checking */
    "strict": true,                             /* Enable all strict type-checking options. */
    "strictNullChecks": true,                   /* When type checking, take into account 'null' and 'undefined'. */
    "noFallthroughCasesInSwitch": true,         /* Enable error reporting for fallthrough cases in switch statements. */

    /* Completeness */
    "skipLibCheck": true,                        /* Skip type checking all .d.ts files. */

    /* JSX */
    "jsx": "react-jsx"
  },
  "include": [
    "src/**/*"
  ],
  "exclude": [
    "node_modules"
  ]
}
