{
  "$schema": "https://json.schemastore.org/tsconfig",
  "compilerOptions": {
    /* permet de faire un check sur les fichiers storybooks, etc, même s'ils
     * ne seront pas inclus dans le package final.
     * tsconfig.build.json possède le `include` correct et un `noEmit` à false
     */
    "noEmit": true,

    "target": "ES2022",
    "module": "ES2022",
    "moduleResolution": "bundler",
    "lib": ["DOM", "DOM.Iterable", "ES2023"],

    "esModuleInterop": true,
    "isolatedModules": true,
    "skipLibCheck": true,
    "strict": true,
    "resolveJsonModule": true,

    "declaration": true,
    "declarationMap": true,
    "moduleDetection": "force",

    "useDefineForClassFields": true,
    "jsx": "react-jsx",

    /* Linting */
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noFallthroughCasesInSwitch": true,

    /**
     * We define project rootDir but set noEmit to true
     * in tsconfig.build.json we define rootDir to "./src"
     * and noEmit to false.
     * With this TypeScript TypeCheck ts config file who are defined
     * outside src/ directory (eg: tailwind.config.ts)
     */
    "outDir": "dist"
  },
  "exclude": ["**/node_modules", "./dist"],
  "include": ["src", "*.ts", ".storybook", "scripts"]
}
