diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..8952d9e --- /dev/null +++ b/tsconfig.json @@ -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" + } + } +} \ No newline at end of file