-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtsconfig.base.json
More file actions
80 lines (69 loc) · 2.7 KB
/
tsconfig.base.json
File metadata and controls
80 lines (69 loc) · 2.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
{
"$schema": "https://json.schemastore.org/tsconfig",
"compilerOptions": {
// ============================================
// BASE OPTIONS
// ============================================
"target": "ES2022",
"module": "ES2022",
"moduleResolution": "bundler",
"lib": ["ES2022"],
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"resolveJsonModule": true,
"isolatedModules": true,
"verbatimModuleSyntax": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"incremental": true,
"baseUrl": ".",
// ============================================
// STRICT TYPE CHECKING (Essential)
// ============================================
"strict": true,
// Explicit strict flags (redundant but explicit for clarity)
"noImplicitAny": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"strictBindCallApply": true,
"strictPropertyInitialization": true,
"noImplicitThis": true,
"alwaysStrict": true,
"useUnknownInCatchVariables": true,
// ============================================
// ADDITIONAL STRICTNESS (Beyond "strict")
// Catches more issues, highly recommended
// ============================================
// Prevents accessing array/object without checking if defined
// Essential for catching runtime errors
"noUncheckedIndexedAccess": true,
// Requires 'override' keyword when overriding methods
"noImplicitOverride": true,
// Stricter handling of optional properties
// Setting undefined is not the same as not setting at all
"exactOptionalPropertyTypes": true,
// All code paths must explicitly return a value
"noImplicitReturns": true,
// Prevents accidental fall-through in switch statements
"noFallthroughCasesInSwitch": true,
// Forces bracket notation for index signatures
// Catches typos in property access
"noPropertyAccessFromIndexSignature": true,
"paths": {
"@agent/shared": ["./packages/shared/src"],
"@agent/shared/*": ["./packages/shared/src/*"],
"@agent/core": ["./packages/core/src"],
"@agent/core/*": ["./packages/core/src/*"],
"@agent/server": ["./packages/server/src"],
"@agent/server/*": ["./packages/server/src/*"],
"@agent/device-use": ["./packages/device-use/src"],
"@agent/device-use/*": ["./packages/device-use/src/*"]
},
// ============================================
// MODULE INTEROP
// ============================================
// Ensures side-effect imports actually exist
"noUncheckedSideEffectImports": true
},
"exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.spec.ts"]
}