@effect/tsgo 0.43.0 → 0.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -5
- package/dist/effect-tsgo.cjs +63 -8
- package/oxlint-presets/index.js +8 -0
- package/oxlint-presets/recommended.json +4 -0
- package/oxlint-presets/style.json +4 -0
- package/oxlint-schema.json +3 -0
- package/package.json +8 -8
- package/schema.json +15 -0
package/README.md
CHANGED
|
@@ -38,12 +38,12 @@ When running in dedicated diagnostics mode, the Effect diagnostics can be emitte
|
|
|
38
38
|
<!-- supported-components:start -->
|
|
39
39
|
## Supported Package Versions
|
|
40
40
|
|
|
41
|
-
The following target package versions are supported by `@effect/tsgo@0.
|
|
41
|
+
The following target package versions are supported by `@effect/tsgo@0.44.0`:
|
|
42
42
|
|
|
43
43
|
| Component | Supported versions |
|
|
44
44
|
|---|---|
|
|
45
|
-
| TypeScript | `7.0.2`, `7.1.0-dev.
|
|
46
|
-
| Oxlint | `1.
|
|
45
|
+
| TypeScript | `7.0.2`, `7.1.0-dev.20260908.1` |
|
|
46
|
+
| Oxlint | `1.81.0`, `1.82.0` |
|
|
47
47
|
| oxlint-tsgolint | `7.0.2001` |
|
|
48
48
|
<!-- supported-components:end -->
|
|
49
49
|
|
|
@@ -71,6 +71,8 @@ Some diagnostics are off by default or have a default severity of suggestion, bu
|
|
|
71
71
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/missing-return-yield-star.md"><code>missingReturnYieldStar</code></a></td><td>Suggests using return yield* for Effects that never succeed</td></tr>
|
|
72
72
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/missing-star-in-yield-effect-gen.md"><code>missingStarInYieldEffectGen</code></a></td><td>Detects bare yield (without *) inside Effect generator scopes</td></tr>
|
|
73
73
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/non-object-effect-service-type.md"><code>nonObjectEffectServiceType</code></a></td><td>Ensures Effect.Service types are objects, not primitives</td></tr>
|
|
74
|
+
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/obsolete-match-import.md"><code>obsoleteMatchImport</code></a></td><td>Warns when importing @effect/match in projects targeting Effect v4, where Match is included directly in the effect package</td></tr>
|
|
75
|
+
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/obsolete-schema-import.md"><code>obsoleteSchemaImport</code></a></td><td>Warns when importing @effect/schema in projects targeting Effect v4, where Schema is included directly in the effect package</td></tr>
|
|
74
76
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/outdated-api.md"><code>outdatedApi</code></a></td><td>Detects usage of APIs that have been removed or renamed in Effect v4</td></tr>
|
|
75
77
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/overridden-schema-constructor.md"><code>overriddenSchemaConstructor</code></a></td><td>Prevents overriding constructors in Schema classes which breaks decoding behavior</td></tr>
|
|
76
78
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/promise-in-effect-success.md"><code>promiseInEffectSuccess</code></a></td><td>Detects Promise types in Effect success channels where they are not awaited</td></tr>
|
|
@@ -101,8 +103,8 @@ Some diagnostics are off by default or have a default severity of suggestion, bu
|
|
|
101
103
|
<tr><td colspan="2"><strong>Effect-native</strong> <em>Prefer Effect-native APIs and abstractions when available.</em></td></tr>
|
|
102
104
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/abort-controller-in-effect.md"><code>abortControllerInEffect</code></a></td><td>Warns when manually constructing AbortController inside Effect generators instead of using Effect.abortSignal</td></tr>
|
|
103
105
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/async-function.md"><code>asyncFunction</code></a></td><td>Warns when declaring async functions and suggests using Effect values and Effect.gen for async control flow</td></tr>
|
|
104
|
-
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/crypto-random-uuid.md"><code>cryptoRandomUUID</code></a></td><td>Warns when using crypto.randomUUID() outside Effect generators instead of the Effect
|
|
105
|
-
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/crypto-random-uuid-in-effect.md"><code>cryptoRandomUUIDInEffect</code></a></td><td>Warns when using crypto.randomUUID() inside Effect generators instead of the Effect
|
|
106
|
+
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/crypto-random-uuid.md"><code>cryptoRandomUUID</code></a></td><td>Warns when using crypto.randomUUID() outside Effect generators instead of the Effect Crypto module</td></tr>
|
|
107
|
+
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/crypto-random-uuid-in-effect.md"><code>cryptoRandomUUIDInEffect</code></a></td><td>Warns when using crypto.randomUUID() inside Effect generators instead of the Effect Crypto module</td></tr>
|
|
106
108
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/extends-native-error.md"><code>extendsNativeError</code></a></td><td>Warns when a class directly extends the native Error class</td></tr>
|
|
107
109
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/global-console.md"><code>globalConsole</code></a></td><td>Warns when using console methods outside Effect generators instead of Effect.log/Logger</td></tr>
|
|
108
110
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/global-console-in-effect.md"><code>globalConsoleInEffect</code></a></td><td>Warns when using console methods inside Effect generators instead of Effect.log/Logger</td></tr>
|
|
@@ -164,6 +166,7 @@ Some diagnostics are off by default or have a default severity of suggestion, bu
|
|
|
164
166
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/service-not-as-class.md"><code>serviceNotAsClass</code></a></td><td>Warns when Context.Service is used as a variable instead of a class declaration</td></tr>
|
|
165
167
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/strict-boolean-expressions.md"><code>strictBooleanExpressions</code></a></td><td>Enforces boolean types in conditional expressions for type safety</td></tr>
|
|
166
168
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/sync-to-succeed.md"><code>syncToSucceed</code></a></td><td>Suggests using Effect.succeed instead of Effect.sync when the thunk returns a constant value</td></tr>
|
|
169
|
+
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/timeout-catch-tag-to-timeout-or-else.md"><code>timeoutCatchTagToTimeoutOrElse</code></a></td><td>Suggests dedicated timeout combinators instead of catching TimeoutError immediately after Effect.timeout</td></tr>
|
|
167
170
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/unnecessary-arrow-block.md"><code>unnecessaryArrowBlock</code></a></td><td>Suggests using a concise arrow body when the block only returns an expression</td></tr>
|
|
168
171
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/unnecessary-effect-gen.md"><code>unnecessaryEffectGen</code></a></td><td>Suggests removing Effect.gen when it contains only a single return statement</td></tr>
|
|
169
172
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/unnecessary-fail-yieldable-error.md"><code>unnecessaryFailYieldableError</code></a></td><td>Suggests yielding yieldable errors directly instead of wrapping with Effect.fail</td></tr>
|
package/dist/effect-tsgo.cjs
CHANGED
|
@@ -48900,7 +48900,7 @@ const runWith = (command, config) => {
|
|
|
48900
48900
|
//#endregion
|
|
48901
48901
|
//#region package.json
|
|
48902
48902
|
var name = "@effect/tsgo";
|
|
48903
|
-
var version = "0.
|
|
48903
|
+
var version = "0.44.0";
|
|
48904
48904
|
|
|
48905
48905
|
//#endregion
|
|
48906
48906
|
//#region src/metadata.json
|
|
@@ -49183,6 +49183,40 @@ var rules = [
|
|
|
49183
49183
|
}]
|
|
49184
49184
|
}
|
|
49185
49185
|
},
|
|
49186
|
+
{
|
|
49187
|
+
"name": "obsoleteMatchImport",
|
|
49188
|
+
"group": "correctness",
|
|
49189
|
+
"description": "Warns when importing @effect/match in projects targeting Effect v4, where Match is included directly in the effect package",
|
|
49190
|
+
"defaultSeverity": "warning",
|
|
49191
|
+
"fixable": false,
|
|
49192
|
+
"supportedEffect": ["v4"],
|
|
49193
|
+
"codes": [377129],
|
|
49194
|
+
"preview": {
|
|
49195
|
+
"sourceText": "import { Effect } from \"effect\"\n// @ts-expect-error - @effect/match is obsolete in v4\nimport * as Match from \"@effect/match\"\n\nexport const preview = Effect.sync(() => Match)\n",
|
|
49196
|
+
"diagnostics": [{
|
|
49197
|
+
"start": 109,
|
|
49198
|
+
"end": 124,
|
|
49199
|
+
"text": "This module reference imports `@effect/match`, which is obsolete in Effect v4. In Effect v4, pattern matching is provided directly by `Match` from `effect` (or `effect/Match`). effect(obsoleteMatchImport)"
|
|
49200
|
+
}]
|
|
49201
|
+
}
|
|
49202
|
+
},
|
|
49203
|
+
{
|
|
49204
|
+
"name": "obsoleteSchemaImport",
|
|
49205
|
+
"group": "correctness",
|
|
49206
|
+
"description": "Warns when importing @effect/schema in projects targeting Effect v4, where Schema is included directly in the effect package",
|
|
49207
|
+
"defaultSeverity": "warning",
|
|
49208
|
+
"fixable": false,
|
|
49209
|
+
"supportedEffect": ["v4"],
|
|
49210
|
+
"codes": [377128],
|
|
49211
|
+
"preview": {
|
|
49212
|
+
"sourceText": "import { Effect } from \"effect\"\n// @ts-expect-error - @effect/schema is obsolete in v4\nimport * as S from \"@effect/schema/Schema\"\n\nexport const preview = Effect.sync(() => S)\n",
|
|
49213
|
+
"diagnostics": [{
|
|
49214
|
+
"start": 106,
|
|
49215
|
+
"end": 129,
|
|
49216
|
+
"text": "This module reference imports `@effect/schema/Schema`, which is obsolete in Effect v4. In Effect v4, Schema is provided directly by `Schema` from `effect` (or `effect/Schema`). effect(obsoleteSchemaImport)"
|
|
49217
|
+
}]
|
|
49218
|
+
}
|
|
49219
|
+
},
|
|
49186
49220
|
{
|
|
49187
49221
|
"name": "outdatedApi",
|
|
49188
49222
|
"group": "correctness",
|
|
@@ -49678,7 +49712,7 @@ var rules = [
|
|
|
49678
49712
|
{
|
|
49679
49713
|
"name": "cryptoRandomUUID",
|
|
49680
49714
|
"group": "effectNative",
|
|
49681
|
-
"description": "Warns when using crypto.randomUUID() outside Effect generators instead of the Effect
|
|
49715
|
+
"description": "Warns when using crypto.randomUUID() outside Effect generators instead of the Effect Crypto module",
|
|
49682
49716
|
"defaultSeverity": "off",
|
|
49683
49717
|
"fixable": false,
|
|
49684
49718
|
"supportedEffect": ["v4"],
|
|
@@ -49688,14 +49722,14 @@ var rules = [
|
|
|
49688
49722
|
"diagnostics": [{
|
|
49689
49723
|
"start": 24,
|
|
49690
49724
|
"end": 43,
|
|
49691
|
-
"text": "This code uses `crypto.randomUUID()`, prefer the Effect `
|
|
49725
|
+
"text": "This code uses `crypto.randomUUID()`, prefer the Effect `Crypto` module instead. effect(cryptoRandomUUID)"
|
|
49692
49726
|
}]
|
|
49693
49727
|
}
|
|
49694
49728
|
},
|
|
49695
49729
|
{
|
|
49696
49730
|
"name": "cryptoRandomUUIDInEffect",
|
|
49697
49731
|
"group": "effectNative",
|
|
49698
|
-
"description": "Warns when using crypto.randomUUID() inside Effect generators instead of the Effect
|
|
49732
|
+
"description": "Warns when using crypto.randomUUID() inside Effect generators instead of the Effect Crypto module",
|
|
49699
49733
|
"defaultSeverity": "off",
|
|
49700
49734
|
"fixable": false,
|
|
49701
49735
|
"supportedEffect": ["v4"],
|
|
@@ -49705,7 +49739,7 @@ var rules = [
|
|
|
49705
49739
|
"diagnostics": [{
|
|
49706
49740
|
"start": 90,
|
|
49707
49741
|
"end": 109,
|
|
49708
|
-
"text": "This Effect code uses `crypto.randomUUID()`, prefer the Effect `
|
|
49742
|
+
"text": "This Effect code uses `crypto.randomUUID()`, prefer the Effect `Crypto` module instead. effect(cryptoRandomUUIDInEffect)"
|
|
49709
49743
|
}]
|
|
49710
49744
|
}
|
|
49711
49745
|
},
|
|
@@ -50757,6 +50791,27 @@ var rules = [
|
|
|
50757
50791
|
}]
|
|
50758
50792
|
}
|
|
50759
50793
|
},
|
|
50794
|
+
{
|
|
50795
|
+
"name": "timeoutCatchTagToTimeoutOrElse",
|
|
50796
|
+
"group": "style",
|
|
50797
|
+
"description": "Suggests dedicated timeout combinators instead of catching TimeoutError immediately after Effect.timeout",
|
|
50798
|
+
"defaultSeverity": "suggestion",
|
|
50799
|
+
"fixable": true,
|
|
50800
|
+
"supportedEffect": ["v4"],
|
|
50801
|
+
"codes": [377127],
|
|
50802
|
+
"preview": {
|
|
50803
|
+
"sourceText": "import { Effect } from \"effect\"\n\ndeclare const fetchQuote: Effect.Effect<string>\n\nexport const quote = fetchQuote.pipe(\n Effect.timeout(\"5 seconds\"),\n Effect.catchTag(\"TimeoutError\", () => Effect.succeed(\"cached quote\"))\n)\n\nexport const maybeQuote = fetchQuote.pipe(\n Effect.timeout(\"5 seconds\"),\n Effect.asSome,\n Effect.catchTag(\"TimeoutError\", () => Effect.succeedNone)\n)\n",
|
|
50804
|
+
"diagnostics": [{
|
|
50805
|
+
"start": 153,
|
|
50806
|
+
"end": 168,
|
|
50807
|
+
"text": "Use `Effect.timeoutOrElse` to handle this timeout directly. effect(timeoutCatchTagToTimeoutOrElse)"
|
|
50808
|
+
}, {
|
|
50809
|
+
"start": 319,
|
|
50810
|
+
"end": 334,
|
|
50811
|
+
"text": "Use `Effect.timeoutOption` to handle this timeout directly. effect(timeoutCatchTagToTimeoutOrElse)"
|
|
50812
|
+
}]
|
|
50813
|
+
}
|
|
50814
|
+
},
|
|
50760
50815
|
{
|
|
50761
50816
|
"name": "unnecessaryArrowBlock",
|
|
50762
50817
|
"group": "style",
|
|
@@ -50871,7 +50926,7 @@ var metadata_default = {
|
|
|
50871
50926
|
var tags = {
|
|
50872
50927
|
"typescript": {
|
|
50873
50928
|
"latest": "7.0.2",
|
|
50874
|
-
"next": "7.1.0-dev.
|
|
50929
|
+
"next": "7.1.0-dev.20260908.1"
|
|
50875
50930
|
},
|
|
50876
50931
|
"oxlint": { "latest": "1.82.0" },
|
|
50877
50932
|
"oxlint-tsgolint": { "latest": "7.0.2001" }
|
|
@@ -50882,7 +50937,7 @@ var components = {
|
|
|
50882
50937
|
"gitHead": "2bd066d87f5bafd315be9f40889d0a60b9e58e0b",
|
|
50883
50938
|
"provider": "typescript-go"
|
|
50884
50939
|
},
|
|
50885
|
-
"7.1.0-dev.
|
|
50940
|
+
"7.1.0-dev.20260908.1": {
|
|
50886
50941
|
"gitHead": "1f70213d4922b434345f639b441681e470c7cfc1",
|
|
50887
50942
|
"provider": "typescript"
|
|
50888
50943
|
}
|
|
@@ -50892,7 +50947,7 @@ var components = {
|
|
|
50892
50947
|
"dependencies": { "typescript": "7.0.2" }
|
|
50893
50948
|
} },
|
|
50894
50949
|
"oxlint": {
|
|
50895
|
-
"1.
|
|
50950
|
+
"1.81.0": { "gitHead": "0b4e2e67f4193e7ebfcc64982275eb583ae82c83" },
|
|
50896
50951
|
"1.82.0": { "gitHead": "b4da00b621ec2f6f67ed218f5366c45ed325331b" }
|
|
50897
50952
|
}
|
|
50898
50953
|
};
|
package/oxlint-presets/index.js
CHANGED
|
@@ -151,6 +151,8 @@ export const recommended = {
|
|
|
151
151
|
"effecttsgo/lazy-promise-in-effect-sync": "warn",
|
|
152
152
|
"effecttsgo/leaking-requirements": "warn",
|
|
153
153
|
"effecttsgo/map-some-to-as-some": "warn",
|
|
154
|
+
"effecttsgo/match-effect-to-map-both": "warn",
|
|
155
|
+
"effecttsgo/match-effect-to-match": "warn",
|
|
154
156
|
"effecttsgo/missing-effect-context": "error",
|
|
155
157
|
"effecttsgo/missing-effect-error": "error",
|
|
156
158
|
"effecttsgo/missing-layer-context": "error",
|
|
@@ -171,6 +173,7 @@ export const recommended = {
|
|
|
171
173
|
"effecttsgo/process-env": "warn",
|
|
172
174
|
"effecttsgo/process-env-in-effect": "warn",
|
|
173
175
|
"effecttsgo/promise-in-effect-success": "warn",
|
|
176
|
+
"effecttsgo/provide-layer-succeed-to-provide-service": "warn",
|
|
174
177
|
"effecttsgo/race-first-with-sleep-to-timeout": "warn",
|
|
175
178
|
"effecttsgo/redundant-map-error": "warn",
|
|
176
179
|
"effecttsgo/redundant-or-die": "warn",
|
|
@@ -185,6 +188,7 @@ export const recommended = {
|
|
|
185
188
|
"effecttsgo/schema-sync-in-effect": "warn",
|
|
186
189
|
"effecttsgo/scope-in-layer-effect": "warn",
|
|
187
190
|
"effecttsgo/sync-to-succeed": "warn",
|
|
191
|
+
"effecttsgo/timeout-catch-tag-to-timeout-or-else": "warn",
|
|
188
192
|
"effecttsgo/try-catch-in-effect-gen": "warn",
|
|
189
193
|
"effecttsgo/unknown-in-effect-catch": "warn",
|
|
190
194
|
"effecttsgo/unnecessary-effect-gen": "warn",
|
|
@@ -222,6 +226,8 @@ export const style = {
|
|
|
222
226
|
"effecttsgo/flat-map-conditional-to-filter-or-fail": "warn",
|
|
223
227
|
"effecttsgo/flat-map-to-map": "warn",
|
|
224
228
|
"effecttsgo/map-some-to-as-some": "warn",
|
|
229
|
+
"effecttsgo/match-effect-to-map-both": "warn",
|
|
230
|
+
"effecttsgo/match-effect-to-match": "warn",
|
|
225
231
|
"effecttsgo/missed-pipeable-opportunity": "warn",
|
|
226
232
|
"effecttsgo/missing-effect-service-dependency": "warn",
|
|
227
233
|
"effecttsgo/missing-pipeable-signature": "warn",
|
|
@@ -232,6 +238,7 @@ export const style = {
|
|
|
232
238
|
"effecttsgo/prefer-schema-type-property": "warn",
|
|
233
239
|
"effecttsgo/prefer-succeed-some-or-none": "warn",
|
|
234
240
|
"effecttsgo/prefer-typed-schema-decoder": "warn",
|
|
241
|
+
"effecttsgo/provide-layer-succeed-to-provide-service": "warn",
|
|
235
242
|
"effecttsgo/race-first-with-sleep-to-timeout": "warn",
|
|
236
243
|
"effecttsgo/redundant-map-error": "warn",
|
|
237
244
|
"effecttsgo/redundant-or-die": "warn",
|
|
@@ -243,6 +250,7 @@ export const style = {
|
|
|
243
250
|
"effecttsgo/service-not-as-class": "warn",
|
|
244
251
|
"effecttsgo/strict-boolean-expressions": "warn",
|
|
245
252
|
"effecttsgo/sync-to-succeed": "warn",
|
|
253
|
+
"effecttsgo/timeout-catch-tag-to-timeout-or-else": "warn",
|
|
246
254
|
"effecttsgo/unnecessary-arrow-block": "warn",
|
|
247
255
|
"effecttsgo/unnecessary-effect-gen": "warn",
|
|
248
256
|
"effecttsgo/unnecessary-fail-yieldable-error": "warn",
|
|
@@ -56,6 +56,8 @@
|
|
|
56
56
|
"effecttsgo/lazy-promise-in-effect-sync": "warn",
|
|
57
57
|
"effecttsgo/leaking-requirements": "warn",
|
|
58
58
|
"effecttsgo/map-some-to-as-some": "warn",
|
|
59
|
+
"effecttsgo/match-effect-to-map-both": "warn",
|
|
60
|
+
"effecttsgo/match-effect-to-match": "warn",
|
|
59
61
|
"effecttsgo/missing-effect-context": "error",
|
|
60
62
|
"effecttsgo/missing-effect-error": "error",
|
|
61
63
|
"effecttsgo/missing-layer-context": "error",
|
|
@@ -76,6 +78,7 @@
|
|
|
76
78
|
"effecttsgo/process-env": "warn",
|
|
77
79
|
"effecttsgo/process-env-in-effect": "warn",
|
|
78
80
|
"effecttsgo/promise-in-effect-success": "warn",
|
|
81
|
+
"effecttsgo/provide-layer-succeed-to-provide-service": "warn",
|
|
79
82
|
"effecttsgo/race-first-with-sleep-to-timeout": "warn",
|
|
80
83
|
"effecttsgo/redundant-map-error": "warn",
|
|
81
84
|
"effecttsgo/redundant-or-die": "warn",
|
|
@@ -90,6 +93,7 @@
|
|
|
90
93
|
"effecttsgo/schema-sync-in-effect": "warn",
|
|
91
94
|
"effecttsgo/scope-in-layer-effect": "warn",
|
|
92
95
|
"effecttsgo/sync-to-succeed": "warn",
|
|
96
|
+
"effecttsgo/timeout-catch-tag-to-timeout-or-else": "warn",
|
|
93
97
|
"effecttsgo/try-catch-in-effect-gen": "warn",
|
|
94
98
|
"effecttsgo/unknown-in-effect-catch": "warn",
|
|
95
99
|
"effecttsgo/unnecessary-effect-gen": "warn",
|
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
"effecttsgo/flat-map-conditional-to-filter-or-fail": "warn",
|
|
26
26
|
"effecttsgo/flat-map-to-map": "warn",
|
|
27
27
|
"effecttsgo/map-some-to-as-some": "warn",
|
|
28
|
+
"effecttsgo/match-effect-to-map-both": "warn",
|
|
29
|
+
"effecttsgo/match-effect-to-match": "warn",
|
|
28
30
|
"effecttsgo/missed-pipeable-opportunity": "warn",
|
|
29
31
|
"effecttsgo/missing-effect-service-dependency": "warn",
|
|
30
32
|
"effecttsgo/missing-pipeable-signature": "warn",
|
|
@@ -35,6 +37,7 @@
|
|
|
35
37
|
"effecttsgo/prefer-schema-type-property": "warn",
|
|
36
38
|
"effecttsgo/prefer-succeed-some-or-none": "warn",
|
|
37
39
|
"effecttsgo/prefer-typed-schema-decoder": "warn",
|
|
40
|
+
"effecttsgo/provide-layer-succeed-to-provide-service": "warn",
|
|
38
41
|
"effecttsgo/race-first-with-sleep-to-timeout": "warn",
|
|
39
42
|
"effecttsgo/redundant-map-error": "warn",
|
|
40
43
|
"effecttsgo/redundant-or-die": "warn",
|
|
@@ -46,6 +49,7 @@
|
|
|
46
49
|
"effecttsgo/service-not-as-class": "warn",
|
|
47
50
|
"effecttsgo/strict-boolean-expressions": "warn",
|
|
48
51
|
"effecttsgo/sync-to-succeed": "warn",
|
|
52
|
+
"effecttsgo/timeout-catch-tag-to-timeout-or-else": "warn",
|
|
49
53
|
"effecttsgo/unnecessary-arrow-block": "warn",
|
|
50
54
|
"effecttsgo/unnecessary-effect-gen": "warn",
|
|
51
55
|
"effecttsgo/unnecessary-fail-yieldable-error": "warn",
|
package/oxlint-schema.json
CHANGED
|
@@ -2533,6 +2533,9 @@
|
|
|
2533
2533
|
"effecttsgo/sync-to-succeed": {
|
|
2534
2534
|
"$ref": "#/definitions/RuleNoConfig"
|
|
2535
2535
|
},
|
|
2536
|
+
"effecttsgo/timeout-catch-tag-to-timeout-or-else": {
|
|
2537
|
+
"$ref": "#/definitions/RuleNoConfig"
|
|
2538
|
+
},
|
|
2536
2539
|
"effecttsgo/try-catch-in-effect-gen": {
|
|
2537
2540
|
"$ref": "#/definitions/RuleNoConfig"
|
|
2538
2541
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/tsgo",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.44.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Effect Language Service for TypeScript-Go — Effect-specific diagnostics and hover features.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -41,13 +41,13 @@
|
|
|
41
41
|
"schema.json"
|
|
42
42
|
],
|
|
43
43
|
"optionalDependencies": {
|
|
44
|
-
"@effect/tsgo-win32-x64": "0.
|
|
45
|
-
"@effect/tsgo-win32-arm64": "0.
|
|
46
|
-
"@effect/tsgo-linux-x64": "0.
|
|
47
|
-
"@effect/tsgo-linux-arm64": "0.
|
|
48
|
-
"@effect/tsgo-linux-arm": "0.
|
|
49
|
-
"@effect/tsgo-darwin-x64": "0.
|
|
50
|
-
"@effect/tsgo-darwin-arm64": "0.
|
|
44
|
+
"@effect/tsgo-win32-x64": "0.44.0",
|
|
45
|
+
"@effect/tsgo-win32-arm64": "0.44.0",
|
|
46
|
+
"@effect/tsgo-linux-x64": "0.44.0",
|
|
47
|
+
"@effect/tsgo-linux-arm64": "0.44.0",
|
|
48
|
+
"@effect/tsgo-linux-arm": "0.44.0",
|
|
49
|
+
"@effect/tsgo-darwin-x64": "0.44.0",
|
|
50
|
+
"@effect/tsgo-darwin-arm64": "0.44.0"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@effect/platform-node": "^4.0.0-beta.107",
|
package/schema.json
CHANGED
|
@@ -2552,6 +2552,16 @@
|
|
|
2552
2552
|
"default": "suggestion",
|
|
2553
2553
|
"description": "Suggests using Effect.asSome instead of Effect.map when the mapper only wraps the success value with Option.some"
|
|
2554
2554
|
},
|
|
2555
|
+
"matchEffectToMapBoth": {
|
|
2556
|
+
"$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
|
|
2557
|
+
"default": "suggestion",
|
|
2558
|
+
"description": "Suggests Effect.mapBoth when Effect.matchEffect only transforms the failure and success channels"
|
|
2559
|
+
},
|
|
2560
|
+
"matchEffectToMatch": {
|
|
2561
|
+
"$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
|
|
2562
|
+
"default": "suggestion",
|
|
2563
|
+
"description": "Suggests Effect.match or Effect.matchCause when both Effect.matchEffect handlers only return Effect.succeed"
|
|
2564
|
+
},
|
|
2555
2565
|
"missedPipeableOpportunity": {
|
|
2556
2566
|
"$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
|
|
2557
2567
|
"default": "off",
|
|
@@ -2777,6 +2787,11 @@
|
|
|
2777
2787
|
"default": "suggestion",
|
|
2778
2788
|
"description": "Suggests using Effect.succeed instead of Effect.sync when the thunk returns a constant value"
|
|
2779
2789
|
},
|
|
2790
|
+
"timeoutCatchTagToTimeoutOrElse": {
|
|
2791
|
+
"$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
|
|
2792
|
+
"default": "suggestion",
|
|
2793
|
+
"description": "Suggests dedicated timeout combinators instead of catching TimeoutError immediately after Effect.timeout"
|
|
2794
|
+
},
|
|
2780
2795
|
"tryCatchInEffectGen": {
|
|
2781
2796
|
"$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
|
|
2782
2797
|
"default": "suggestion",
|