1{
2 "$schema": "https://json.schemastore.org/tsconfig",
3 "extends": "./tsconfig.base.json",
4 "references": [{ "path": "tsconfig.packages.json" }],
5 "include": [
6 "**/vitest.*.ts", // All vitest config files across all packages
7 "./bundle/**/*.ts", // Bundle size test files
8 "./packages/*/test/**/*.ts",
9 "./packages/*/test/**/*.json",
10 "./packages/*/typetest/**/*.ts",
11 "./packages/*/benchmark/**/*.ts",
12 "./packages/**/test/**/*.ts",
13 "./packages/**/test/**/*.json",
14 "./packages/**/typetest/**/*.ts",
15 "./packages/**/benchmark/**/*.ts"
16 ],
17 "exclude": [
18 "**/node_modules/**",
19 "**/dist/**",
20 "./packages/platform/deno/**",
21 // Declares `Reactivity.Keys`, which would make reactivity keys strict for every test in this program.
22 // TSTyche still checks it in its own program.
23 "./packages/effect/typetest/reactivity/ReactivityKeys.tst.ts"
24 ],
25 "compilerOptions": {
26 "rootDir": ".",
27 "noEmit": true,
28 "erasableSyntaxOnly": false,
29 "resolveJsonModule": true,
30 "types": ["node"],
31 "paths": {
32 // These path aliases allow us to load internal modules in tests and to use other workspace packages in tests
33 // that would otherwise be considered cyclic dependencies (e.g. loading `@effect/sql-sqlite-node` in the test
34 // suite of `@effect/platform-node` which itself depends on `@effect/platform-node`).
35 "effect": ["./packages/effect/src/index.ts"],
36 "effect/graphql": ["./packages/effect/src/graphql/index.ts"],
37 "effect/jose": ["./packages/effect/src/jose/index.ts"],
38 "effect/schema": ["./packages/effect/src/schema/index.ts"],
39 "effect/*": ["./packages/effect/src/*.ts"],
40 "@effect/ai-anthropic": ["./packages/ai/anthropic/src/index.ts"],
41 "@effect/ai-anthropic/*": ["./packages/ai/anthropic/src/*.ts"],
42 "@effect/ai-cloudflare": ["./packages/ai/cloudflare/src/index.ts"],
43 "@effect/ai-cloudflare/*": ["./packages/ai/cloudflare/src/*.ts"],
44 "@effect/ai-openai-compat": ["./packages/ai/openai-compat/src/index.ts"],
45 "@effect/ai-openai-compat/*": ["./packages/ai/openai-compat/src/*.ts"],
46 "@effect/ai-openai": ["./packages/ai/openai/src/index.ts"],
47 "@effect/ai-openai/*": ["./packages/ai/openai/src/*.ts"],
48 "@effect/ai-typesafe": ["./packages/ai/typesafe/src/index.ts"],
49 "@effect/ai-typesafe/*": ["./packages/ai/typesafe/src/*.ts"],
50 "@effect/ai-openrouter": ["./packages/ai/openrouter/src/index.ts"],
51 "@effect/ai-openrouter/*": ["./packages/ai/openrouter/src/*.ts"],
52 "@effect/atom-react": ["./packages/atom/react/src/index.ts"],
53 "@effect/atom-react/*": ["./packages/atom/react/src/*.ts"],
54 "@effect/atom-vue": ["./packages/atom/vue/src/index.ts"],
55 "@effect/atom-vue/*": ["./packages/atom/vue/src/*.ts"],
56 "@effect/atom-solid": ["./packages/atom/solid/src/index.ts"],
57 "@effect/atom-solid/*": ["./packages/atom/solid/src/*.ts"],
58 "@effect/opentelemetry": ["./packages/opentelemetry/src/index.ts"],
59 "@effect/opentelemetry/*": ["./packages/opentelemetry/src/*.ts"],
60 "@effect/platform-browser": ["./packages/platform/browser/src/index.ts"],
61 "@effect/platform-browser/*": ["./packages/platform/browser/src/*.ts"],
62 "@effect/platform-bun": ["./packages/platform/bun/src/index.ts"],
63 "@effect/platform-bun/*": ["./packages/platform/bun/src/*.ts"],
64 "@effect/platform-node": ["./packages/platform/node/src/index.ts"],
65 "@effect/platform-node/*": ["./packages/platform/node/src/*.ts"],
66 "@effect/platform-node-shared": ["./packages/platform/node-shared/src/index.ts"],
67 "@effect/platform-node-shared/*": ["./packages/platform/node-shared/src/*.ts"],
68 "@effect/sql-clickhouse": ["./packages/sql/clickhouse/src/index.ts"],
69 "@effect/sql-clickhouse/*": ["./packages/sql/clickhouse/src/*.ts"],
70 "@effect/sql-d1": ["./packages/sql/d1/src/index.ts"],
71 "@effect/sql-d1/*": ["./packages/sql/d1/src/*.ts"],
72 "@effect/sql-libsql": ["./packages/sql/libsql/src/index.ts"],
73 "@effect/sql-libsql/*": ["./packages/sql/libsql/src/*.ts"],
74 "@effect/sql-mssql": ["./packages/sql/mssql/src/index.ts"],
75 "@effect/sql-mssql/*": ["./packages/sql/mssql/src/*.ts"],
76 "@effect/sql-mysql2": ["./packages/sql/mysql2/src/index.ts"],
77 "@effect/sql-mysql2/*": ["./packages/sql/mysql2/src/*.ts"],
78 "@effect/sql-pg": ["./packages/sql/pg/src/index.ts"],
79 "@effect/sql-pg/*": ["./packages/sql/pg/src/*.ts"],
80 "@effect/sql-pglite": ["./packages/sql/pglite/src/index.ts"],
81 "@effect/sql-pglite/*": ["./packages/sql/pglite/src/*.ts"],
82 "@effect/sql-sqlite-bun": ["./packages/sql/sqlite-bun/src/index.ts"],
83 "@effect/sql-sqlite-bun/*": ["./packages/sql/sqlite-bun/src/*.ts"],
84 "@effect/sql-sqlite-do": ["./packages/sql/sqlite-do/src/index.ts"],
85 "@effect/sql-sqlite-do/*": ["./packages/sql/sqlite-do/src/*.ts"],
86 "@effect/sql-sqlite-node": ["./packages/sql/sqlite-node/src/index.ts"],
87 "@effect/sql-sqlite-node/*": ["./packages/sql/sqlite-node/src/*.ts"],
88 "@effect/sql-sqlite-react-native": ["./packages/sql/sqlite-react-native/src/index.ts"],
89 "@effect/sql-sqlite-react-native/*": ["./packages/sql/sqlite-react-native/src/*.ts"],
90 "@effect/sql-sqlite-wasm": ["./packages/sql/sqlite-wasm/src/index.ts"],
91 "@effect/sql-sqlite-wasm/*": ["./packages/sql/sqlite-wasm/src/*.ts"],
92 "@effect/ai-codegen": ["./packages/tools/ai-codegen/src/index.ts"],
93 "@effect/ai-codegen/*": ["./packages/tools/ai-codegen/src/*.ts"],
94 "@effect/api-diff": ["./packages/tools/api-diff/src/Cli.ts"],
95 "@effect/api-diff/*": ["./packages/tools/api-diff/src/*.ts"],
96 "@effect/ai-docgen": ["./packages/tools/ai-docgen/src/index.ts"],
97 "@effect/ai-docgen/*": ["./packages/tools/ai-docgen/src/*.ts"],
98 "@effect/bundle/*": ["./packages/tools/bundle/src/*.ts"],
99 "@effect/docgen": ["./packages/tools/docgen/src/index.ts"],
100 "@effect/docgen/*": ["./packages/tools/docgen/src/*.ts"],
101 "@effect/npm-promote": ["./packages/tools/npm-promote/src/NpmPromote.ts"],
102 "@effect/npm-promote/*": ["./packages/tools/npm-promote/src/*.ts"],
103 "@effect/openapi-generator": ["./packages/tools/openapi-generator/src/index.ts"],
104 "@effect/openapi-generator/*": ["./packages/tools/openapi-generator/src/*.ts"],
105 "@effect/graphql-generator/*": ["./packages/tools/graphql-generator/src/*.ts"],
106 "@effect/oxc": ["./packages/tools/oxc/src/index.ts"],
107 "@effect/oxc/*": ["./packages/tools/oxc/src/*.ts"],
108 "@effect/tools-utils": ["./packages/tools/utils/src/index.ts"],
109 "@effect/tools-utils/*": ["./packages/tools/utils/src/*.ts"],
110 "@effect/vitest": ["./packages/vitest/src/index.ts"],
111 "@effect/vitest/*": ["./packages/vitest/src/*.ts"],
112 // TODO: This is a special alias used by some tests. We should try to get rid of it.
113 "effect-test/*": ["./packages/effect/test/*.ts"]
114 },
115 "plugins": [{
116 "name": "@effect/language-service",
117 "effectFn": ["untraced"],
118 "namespaceImportPackages": [],
119 "includeSuggestionsInTsc": false,
120 "ignoreEffectWarningsInTscExitCode": true,
121 "ignoreEffectErrorsInTscExitCode": false,
122 "overrides": [
123 {
124 "include": ["**/typetest/**/*.ts"],
125 "options": {
126 "diagnosticSeverity": {
127 "floatingEffect": "off"
128 }
129 }
130 }
131 ],
132 "diagnosticSeverity": {
133 "unknownInEffectCatch": "off",
134 "multipleEffectProvide": "off",
135 "unstableApiUsage": "off",
136 "effectFnOpportunity": "error"
137 }
138 }]
139 }
140}