## Summary This PR fixes the `tsconfig` setup in `twenty-front` so that `tsgo -p tsconfig.json` properly type-checks all files. ### Root Cause The previous setup used TypeScript project references with `files: []` in the main `tsconfig.json`. When running `tsgo -p tsconfig.json`, this checks nothing because `tsgo` requires the `-b` (build) flag for project references, but the configs weren't set up for composite mode. ### Changes **Simplified tsconfig architecture (4 files → 2):** - `tsconfig.json` - All files (dev, tests, stories) for typecheck/IDE/lint - `tsconfig.build.json` - Production files only (excludes tests/stories) **Removed redundant configs:** - `tsconfig.dev.json` - `tsconfig.spec.json` - `tsconfig.storybook.json` **Updated references:** - `jest.config.mjs` → uses `tsconfig.json` - `eslint.config.mjs` → uses `tsconfig.json` - `vite.config.ts` → uses `tsconfig.json` for dev **Type fixes (pre-existing errors revealed by proper typechecking):** - Made `applicationId` optional in `FieldMetadataItem` and `ObjectMetadataItem` - Added missing `navigationMenuItem` translation - Added `objectLabelSingular` to Search GraphQL query - Fixed `sortMorphItems.test.ts` mock data ## Test plan - [ ] Run `npx nx typecheck twenty-front` - should pass - [ ] Run `npx nx lint twenty-front` - should work - [ ] Run `npx nx test twenty-front` - should work - [ ] Run `npx nx build twenty-front` - should work - [ ] Verify IDE type checking works correctly
53 lines
1.3 KiB
JSON
53 lines
1.3 KiB
JSON
{
|
|
"compilerOptions": {
|
|
"target": "ES2020",
|
|
"useDefineForClassFields": true,
|
|
"lib": ["ES2020", "DOM", "DOM.Iterable", "ES2023", "ES2023.Array"],
|
|
"module": "ESNext",
|
|
"skipLibCheck": true,
|
|
"allowJs": true,
|
|
"esModuleInterop": true,
|
|
"moduleResolution": "bundler",
|
|
"allowSyntheticDefaultImports": true,
|
|
"allowImportingTsExtensions": false,
|
|
"resolveJsonModule": true,
|
|
"isolatedModules": true,
|
|
"noEmit": true,
|
|
"jsx": "react-jsx",
|
|
"strict": true,
|
|
"noUnusedLocals": false,
|
|
"noUnusedParameters": false,
|
|
"noFallthroughCasesInSwitch": true,
|
|
"forceConsistentCasingInFileNames": true,
|
|
"outDir": "../../.cache/tsc",
|
|
"paths": {
|
|
"@/*": ["./src/modules/*"],
|
|
"~/*": ["./src/*"]
|
|
},
|
|
"types": ["node", "jest"],
|
|
"plugins": [
|
|
{
|
|
"name": "@styled/typescript-styled-plugin",
|
|
"lint": {
|
|
"validProperties": ["container-type"]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"include": [
|
|
"src/**/*.js",
|
|
"src/**/*.jsx",
|
|
"src/**/*.d.ts",
|
|
"src/**/*.ts",
|
|
"src/**/*.tsx",
|
|
".storybook/*.ts",
|
|
".storybook/*.tsx",
|
|
"lingui.config.ts",
|
|
"jest.config.mjs",
|
|
"vite.config.ts",
|
|
"vitest.config.ts",
|
|
"setupTests.ts"
|
|
],
|
|
"extends": "../../tsconfig.base.json"
|
|
}
|