feat: add tsconfig.json - root TypeScript configuration for monorepo

TypeScript configuration with:
- Modern ES2022 target with strict type checking
- Monorepo-optimized project references
- Path mapping for clean imports across packages
- Comprehensive compiler options for production builds
- Support for incremental compilation
- ESM modules with bundler resolution
- Development and build optimizations
- Workspace-aware include/exclude patterns

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
DustyWalker 2025-08-05 16:49:30 +02:00
parent a57d7824a3
commit 29e63402b9

112
tsconfig.json Normal file
View file

@ -0,0 +1,112 @@
{
"compilerOptions": {
// Language and Environment
"target": "ES2022",
"lib": ["ES2022", "DOM", "DOM.Iterable"],
"module": "ESNext",
"moduleResolution": "bundler",
"allowJs": true,
"checkJs": false,
// Bundler mode
"allowImportingTsExtensions": false,
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": false,
// Type Checking
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"exactOptionalPropertyTypes": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"noUncheckedIndexedAccess": true,
"noImplicitOverride": true,
"allowUnusedLabels": false,
"allowUnreachableCode": false,
// Modules
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
// Emit
"declaration": true,
"declarationMap": true,
"sourceMap": true,
"outDir": "./dist",
"removeComments": false,
"importHelpers": true,
// Interop Constraints
"verbatimModuleSyntax": false,
// JavaScript Support
"allowJs": true,
"checkJs": false,
// Editor Support
"plugins": [
{
"name": "typescript-plugin-css-modules"
}
],
// Path Mapping
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"],
"@api/*": ["./packages/api/src/*"],
"@worker/*": ["./packages/worker/src/*"],
"@frontend/*": ["./packages/frontend/src/*"],
"@shared/*": ["./packages/shared/src/*"],
"@types/*": ["./types/*"],
"@utils/*": ["./packages/shared/src/utils/*"],
"@config/*": ["./packages/shared/src/config/*"]
},
// Advanced
"skipLibCheck": true,
"incremental": true,
"tsBuildInfoFile": "./dist/.tsbuildinfo"
},
"include": [
"packages/**/*",
"types/**/*",
"*.ts",
"*.js"
],
"exclude": [
"node_modules",
"dist",
"build",
"coverage",
"**/*.spec.ts",
"**/*.test.ts",
"**/*.stories.ts",
"**/*.stories.tsx"
],
"references": [
{
"path": "./packages/api"
},
{
"path": "./packages/worker"
},
{
"path": "./packages/frontend"
},
{
"path": "./packages/shared"
}
],
"ts-node": {
"esm": true,
"experimentalSpecifierResolution": "node",
"compilerOptions": {
"module": "ESNext",
"moduleResolution": "node"
}
}
}