46 lines
2.0 KiB
JSON
46 lines
2.0 KiB
JSON
{
|
|
"$schema": "http://json.schemastore.org/tsconfig",
|
|
"include": [],
|
|
"compilerOptions": {
|
|
"outDir": "${configDir}/dist",
|
|
"rootDir": "${configDir}/src",
|
|
// Use incremental builds with project references.
|
|
"incremental": true,
|
|
"composite": true,
|
|
// Target modern JavaScript (ES2022+) whilst staying closely compatible with the Node.js module system.
|
|
"target": "ES2022",
|
|
"module": "NodeNext",
|
|
"moduleDetection": "force", // Treat every non-declaration file as a module.
|
|
"verbatimModuleSyntax": true, // Only transform/eliminate type-only import/export statements.
|
|
"allowJs": false, // If you touch this, a puppy dies.
|
|
"rewriteRelativeImportExtensions": true, // Rewrite `.ts` imports to `.js` at build time.
|
|
"erasableSyntaxOnly": true, // Allows to run directly with node and type removal
|
|
// Emit source- & declaration maps.
|
|
"declarationMap": true,
|
|
"sourceMap": true,
|
|
// Opt-in to stricter type checking and correctness guard rails. The more the merrier.
|
|
"strict": true,
|
|
"exactOptionalPropertyTypes": true,
|
|
"noUnusedLocals": true,
|
|
"noUnusedParameters": true,
|
|
"noImplicitOverride": true,
|
|
"noFallthroughCasesInSwitch": true,
|
|
// Miscellaneoaus
|
|
"stripInternal": false, // tests require `false` because project references type-check against those declarations.
|
|
"skipLibCheck": true, // Skip type checking of third party libraries.
|
|
"noErrorTruncation": true, // Do not truncate error messages.
|
|
"types": [], // Disable automatic loading of `@types/*` packages.
|
|
"jsx": "react-jsx",
|
|
"plugins": [{
|
|
"name": "@effect/language-service",
|
|
"namespaceImportPackages": ["effect", "@effect/*"],
|
|
"diagnosticSeverity": {
|
|
"globalErrorInEffectFailure": "off" // TODO: Check if we should fix the warnings this reports
|
|
},
|
|
"includeSuggestionsInTsc": false,
|
|
"ignoreEffectWarningsInTscExitCode": true,
|
|
"ignoreEffectErrorsInTscExitCode": true
|
|
}]
|
|
}
|
|
}
|