trustgraph/ts/tsconfig.base.json

142 lines
5.7 KiB
JSON
Raw Normal View History

2026-04-05 21:09:33 -05:00
{
2026-05-12 08:06:58 -05:00
"$schema": "https://raw.githubusercontent.com/Effect-TS/tsgo/refs/heads/main/schema.json",
"include": [],
2026-04-05 21:09:33 -05:00
"compilerOptions": {
2026-05-12 08:06:58 -05:00
"outDir": "${configDir}/dist",
"rootDir": "${configDir}/src",
"tsBuildInfoFile": "${configDir}/node_modules/.tmp/tsconfig.tsbuildinfo",
// Use incremental builds with project references.
"incremental": true,
"composite": true,
// Target modern JavaScript (ES2022+) whilst staying closely compatible with the Node.js module system.
2026-04-05 21:09:33 -05:00
"target": "ES2022",
"module": "NodeNext",
2026-05-12 08:06:58 -05:00
"moduleResolution": "nodenext",
"moduleDetection": "force", // Treat every non-declaration file as a module.
"verbatimModuleSyntax": true, // Only transform/eliminate type-only import/export statements.
"allowImportingTsExtensions": true,
"allowJs": false, // Keep JavaScript out of TypeScript project graphs.
"rewriteRelativeImportExtensions": true, // Rewrite `.ts` imports to `.js` at build time.
"erasableSyntaxOnly": true, // Allows to run directly with bun and type removal
// Emit source- & declaration maps.
2026-04-05 21:09:33 -05:00
"declaration": true,
"declarationMap": true,
"sourceMap": true,
2026-05-12 08:06:58 -05:00
// 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,
// Miscellaneous
"stripInternal": false, // We temporarily override this to `true` when publishing packages.
"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",
2026-06-01 23:19:54 -05:00
"namespaceImportPackages": ["effect", "@effect/*", "@trustgraph/*"],
2026-05-12 08:06:58 -05:00
"ignoreEffectSuggestionsInTscExitCode": false,
"ignoreEffectWarningsInTscExitCode": false,
"ignoreEffectErrorsInTscExitCode": false,
"includeSuggestionsInTsc": true,
"skipDisabledOptimization": false,
"effectFn": ["span", "inferred-span", "suggested-span"],
"importAliases": {
"Array": "A",
"Option": "O",
"Predicate": "P",
"Record": "R",
"Schema": "S",
"Equal": "Eq"
},
"diagnosticSeverity": {
"anyUnknownInErrorContext": "error",
2026-06-01 23:19:54 -05:00
"asyncFunction": "error",
2026-05-12 08:06:58 -05:00
"catchAllToMapError": "error",
2026-06-01 23:19:54 -05:00
"catchToOrElseSucceed": "error",
2026-05-12 08:06:58 -05:00
"catchUnfailableEffect": "error",
2026-06-01 23:19:54 -05:00
"classSelfMismatch": "error",
"cryptoRandomUUID": "error",
"cryptoRandomUUIDInEffect": "error",
2026-05-12 08:06:58 -05:00
"deterministicKeys": "error",
"duplicatePackage": "error",
2026-06-01 23:19:54 -05:00
"effectDoNotation": "error",
2026-05-12 08:06:58 -05:00
"effectFnIife": "error",
2026-06-01 23:19:54 -05:00
"effectFnImplicitAny": "error",
2026-05-12 08:06:58 -05:00
"effectFnOpportunity": "error",
"effectGenUsesAdapter": "error",
"effectInFailure": "error",
"effectInVoidSuccess": "error",
2026-06-01 23:19:54 -05:00
"effectMapFlatten": "error",
2026-05-12 08:06:58 -05:00
"effectMapVoid": "error",
"effectSucceedWithVoid": "error",
"extendsNativeError": "error",
2026-06-01 23:19:54 -05:00
"floatingEffect": "error",
2026-05-12 08:06:58 -05:00
"genericEffectServices": "error",
2026-06-01 23:19:54 -05:00
"globalConsole": "error",
"globalConsoleInEffect": "error",
"globalDate": "error",
"globalDateInEffect": "error",
2026-05-12 08:06:58 -05:00
"globalErrorInEffectCatch": "error",
"globalErrorInEffectFailure": "error",
2026-06-01 23:19:54 -05:00
"globalFetch": "error",
"globalFetchInEffect": "error",
"globalRandom": "error",
"globalRandomInEffect": "error",
"globalTimers": "error",
"globalTimersInEffect": "error",
2026-05-12 08:06:58 -05:00
"instanceOfSchema": "error",
"layerMergeAllWithDependencies": "error",
2026-06-01 23:19:54 -05:00
"lazyEffect": "error",
"lazyPromiseInEffectSync": "error",
2026-05-12 08:06:58 -05:00
"leakingRequirements": "error",
"missedPipeableOpportunity": "error",
2026-06-01 23:19:54 -05:00
"missingEffectContext": "error",
"missingEffectError": "error",
2026-05-12 08:06:58 -05:00
"missingEffectServiceDependency": "error",
2026-06-01 23:19:54 -05:00
"missingLayerContext": "error",
"missingReturnYieldStar": "error",
"missingStarInYieldEffectGen": "error",
"multipleCatchTag": "error",
2026-05-12 08:06:58 -05:00
"multipleEffectProvide": "error",
2026-06-01 23:19:54 -05:00
"nestedEffectGenYield": "error",
"newPromise": "error",
"newSchemaClass": "error",
2026-05-12 08:06:58 -05:00
"nodeBuiltinImport": "error",
2026-06-01 23:19:54 -05:00
"nonObjectEffectServiceType": "error",
2026-05-12 08:06:58 -05:00
"outdatedApi": "error",
2026-06-01 23:19:54 -05:00
"overriddenSchemaConstructor": "error",
2026-05-12 08:06:58 -05:00
"preferSchemaOverJson": "error",
2026-06-01 23:19:54 -05:00
"processEnv": "error",
"processEnvInEffect": "error",
"redundantOrDie": "error",
"redundantMapError": "error",
2026-05-12 08:06:58 -05:00
"redundantSchemaTagIdentifier": "error",
"returnEffectInGen": "error",
"runEffectInsideEffect": "error",
"schemaStructWithTag": "error",
"schemaSyncInEffect": "error",
"schemaUnionOfLiterals": "error",
"scopeInLayerEffect": "error",
"serviceNotAsClass": "error",
"strictBooleanExpressions": "error",
"strictEffectProvide": "error",
"tryCatchInEffectGen": "error",
"unknownInEffectCatch": "error",
2026-06-01 23:19:54 -05:00
"unnecessaryArrowBlock": "error",
2026-05-12 08:06:58 -05:00
"unnecessaryEffectGen": "error",
"unnecessaryFailYieldableError": "error",
"unnecessaryPipe": "error",
2026-06-01 23:19:54 -05:00
"unnecessaryPipeChain": "error",
"unnecessaryTypeofType": "error",
"unsafeEffectTypeAssertion": "error"
2026-05-12 08:06:58 -05:00
}
}
]
2026-04-05 21:09:33 -05:00
}
}