{
  "compilerOptions": {
    /* Language and Environment */
    "target": "esnext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
    "jsx": "react-jsx" /* Specify what JSX code is generated. */,

    /* Modules */
    "module": "ESNext" /* Specify what module code is generated. */,
    "moduleResolution": "Node" /* Specify how TypeScript looks up a file from a given module specifier. */,

    /* JavaScript Support */
    "allowJs": false /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */,
    "maxNodeModuleJsDepth": 1 /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */,

    /* Emit */
    "declaration": true /* Generate .d.ts files from TypeScript and JavaScript files in your project. */,
    // "emitDeclarationOnly": true /* Only output d.ts files and not JavaScript files. */,
    "sourceMap": true /* Create source map files for emitted JavaScript files. */,
    "outDir": "lib" /* Specify an output folder for all emitted files. */,
    "declarationDir": "lib" /* Specify the output directory for generated declaration files. */,

    /* Interop Constraints */
    "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. */,
    "noUnusedLocals": true /* Enable error reporting when local variables aren't read. */,
    "noUnusedParameters": true /* Raise an error when a function parameter isn't read. */,
    "noImplicitReturns": true /* Enable error reporting for codepaths that do not explicitly return in a function. */,
    "noFallthroughCasesInSwitch": true /* Enable error reporting for fallthrough cases in switch statements. */,
    "noUncheckedIndexedAccess": true /* Add 'undefined' to a type when accessed using an index. */,
    "allowUnreachableCode": false /* Disable error reporting for unreachable code. */,

    /* Completeness */
    "skipLibCheck": true /* Skip type checking all .d.ts files. */,
    "types": ["vite-plugin-svgr/client"],
    "noEmit": true,

    //Able to import json file with alias name
    "resolveJsonModule": true,

    // Path alias
    // "paths": {
    //   "@components": ["./src/components/"],
    //   "@styles": ["./src/assets/styles/"],
    //   "@icons": ["./src/assets/icons/"],
    //   "@/*": ["./src/*"]
    // }
  },

  "include": ["src"],
  "exclude": ["node_modules", "lib"]
}
