-
Notifications
You must be signed in to change notification settings - Fork 0
/
tsconfig.json
91 lines (83 loc) · 3.03 KB
/
tsconfig.json
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
81
82
83
84
85
86
87
88
89
90
91
{
"compilerOptions": {
/*
Use TypeScript only for type checking and
generating .d.ts files.
Transpiling should be done using another tool
such as babel or SWC. See the configuration on
root imports for more info.
*/
"outDir": "./dist",
"noEmit": true,
"sourceMap": false,
"removeComments": true,
/*
Ensure that each file can be safely transpiled without
relying on other imports. Useful when using other
transpilers such as babel or SWC instead of tsc.
*/
"isolatedModules": true,
// Enable latest JS features.
"target": "ES2021",
"lib": ["ES2021"],
// Allow JavaScript files to be safely imported
"allowJs": true,
"checkJs": true,
// Allow importing of json files
"resolveJsonModule": true,
// Code quality
"strict": true,
"allowUnreachableCode": false,
"forceConsistentCasingInFileNames": true,
"noImplicitOverride": true,
"noImplicitReturns": true,
"noPropertyAccessFromIndexSignature": true,
"noFallthroughCasesInSwitch": true,
/*
Root Imports
⚠ This will only enable root import features in code editors (like vscode).
TypeScript compiler DOES NOT rewrite the paths in compilation. See:
https://github.com/microsoft/TypeScript/issues/10866
https://github.com/microsoft/TypeScript/issues/16640
https://github.com/microsoft/TypeScript/issues/26722
Transpilers (babel, swc) must be configured separately to get this feature working.
If using swc
keep baseUrl & paths in sync with
jsc.baseUrl & jsc.paths
in .swcrc
If using babel
install babel-plugin-module-resolver
keep baseUrl in sync with plugin option "root"
keep paths in sync with plugin "alias"
*/
"baseUrl": ".",
"paths": {
"~/*": ["./src/*"]
},
// Other
"moduleResolution": "Node",
/* NOT TAKEN INTO ACCOUNT
Because tsc is not generating js files.
These options must be supported be the transpiler (bable, swc, etc.)
*/
"emitDecoratorMetadata": true, // experimental support for emitting type metadata
"experimentalDecorators": true, // experimental support for TC39 decorators standard
"esModuleInterop": true, // interoperability between cjs and mjs
"jsx": "preserve", // Don't make any changes to jsx
"module": "ES2022" // output cjs modules
},
"ts-node": {
"esm": true,
"files": true
},
"include": [
"./**/*.ts",
"./**/*.cts",
"./**/*.mts",
"./**/*.js",
"./**/*.mjs",
"./**/*.cjs",
".env.d.ts"
],
"exclude": ["**/node_modules", "dist"]
}