1{
2 "$schema": "https://json.schemastore.org/tsconfig",
3 "include": [],
4 "compilerOptions": {
5 "outDir": "${configDir}/dist",
6 "rootDir": "${configDir}/src",
7 // Use incremental builds with project references.
8 "incremental": true,
9 "composite": true,
10 // Target modern JavaScript (ES2022+) whilst staying closely compatible with the Node.js module system.
11 "target": "ES2022",
12 "module": "NodeNext",
13 "moduleDetection": "force", // Treat every non-declaration file as a module.
14 "verbatimModuleSyntax": true, // Only transform/eliminate type-only import/export statements.
15 "allowJs": false, // If you touch this, a puppy dies.
16 "rewriteRelativeImportExtensions": true, // Rewrite `.ts` imports to `.js` at build time.
17 "erasableSyntaxOnly": true, // Allows to run directly with node and type removal
18 // Emit source- & declaration maps.
19 "declarationMap": true,
20 "sourceMap": true,
21 // Opt-in to stricter type checking and correctness guard rails. The more the merrier.
22 "strict": true,
23 "exactOptionalPropertyTypes": true,
24 "noUnusedLocals": true,
25 "noUnusedParameters": true,
26 "noImplicitOverride": true,
27 "noFallthroughCasesInSwitch": true,
28 // Miscellaneoaus
29 "stripInternal": false, // tests require `false` because project references type-check against those declarations.
30 "skipLibCheck": true, // Skip type checking of third party libraries.
31 "noErrorTruncation": true, // Do not truncate error messages.
32 "types": [], // Disable automatic loading of `@types/*` packages.
33 "jsx": "react-jsx",
34 "plugins": [{
35 "name": "@effect/language-service",
36 "namespaceImportPackages": ["effect", "@effect/*"],
37 "diagnosticSeverity": {
38 "globalErrorInEffectFailure": "off" // TODO: Check if we should fix the warnings this reports
39 },
40 "includeSuggestionsInTsc": false,
41 "ignoreEffectWarningsInTscExitCode": true,
42 "ignoreEffectErrorsInTscExitCode": true
43 }]
44 }
45}