@effect/tsgo 0.37.0 → 0.38.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 +6 -2
- package/dist/effect-tsgo.cjs +91 -9
- package/oxlint-presets/index.js +2 -0
- package/oxlint-presets/recommended.json +1 -0
- package/oxlint-presets/style.json +1 -0
- package/oxlint-schema.json +12 -0
- package/package.json +8 -8
- package/schema.json +20 -0
package/README.md
CHANGED
|
@@ -38,11 +38,11 @@ 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.38.0`:
|
|
42
42
|
|
|
43
43
|
| Component | Supported versions |
|
|
44
44
|
|---|---|
|
|
45
|
-
| TypeScript | `7.0.2`, `7.1.0-dev.
|
|
45
|
+
| TypeScript | `7.0.2`, `7.1.0-dev.20260826.1` |
|
|
46
46
|
| Oxlint | `1.79.0`, `1.80.0` |
|
|
47
47
|
| oxlint-tsgolint | `7.0.2001` |
|
|
48
48
|
<!-- supported-components:end -->
|
|
@@ -121,8 +121,11 @@ Some diagnostics are off by default or have a default severity of suggestion, bu
|
|
|
121
121
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/process-env-in-effect.md"><code>processEnvInEffect</code></a></td><td>Warns when reading process.env inside Effect generators instead of using Effect Config</td></tr>
|
|
122
122
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/unsafe-effect-type-assertion.md"><code>unsafeEffectTypeAssertion</code></a></td><td>Detects unsafe type assertions that narrow Effect, Stream, or Layer error or requirements channels</td></tr>
|
|
123
123
|
<tr><td colspan="2"><strong>Style</strong> <em>Cleanup, consistency, and idiomatic Effect code.</em></td></tr>
|
|
124
|
+
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/all-of-map-to-for-each.md"><code>allOfMapToForEach</code></a></td><td>Suggests using Effect.forEach instead of Effect.all over an effectful Array#map</td></tr>
|
|
124
125
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/catch-all-to-map-error.md"><code>catchAllToMapError</code></a></td><td>Suggests using Effect.mapError instead of Effect.catch + Effect.fail</td></tr>
|
|
125
126
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/catch-chain-to-first-success-of.md"><code>catchChainToFirstSuccessOf</code></a></td><td>Suggests Effect.firstSuccessOf for consecutive error-independent Effect.catch fallbacks when the error type is preserved</td></tr>
|
|
127
|
+
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/catch-conditional-refail-to-catch-if.md"><code>catchConditionalRefailToCatchIf</code></a></td><td>Suggests Effect.catchIf, Effect.catchCauseIf, or Effect.catchTag for conditional catch handlers that re-fail their untouched input</td></tr>
|
|
128
|
+
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/catch-die-to-or-die.md"><code>catchDieToOrDie</code></a></td><td>Suggests using Effect.orDie instead of Effect.catch or Effect.catchAll with an identity-forwarding Effect.die handler</td></tr>
|
|
126
129
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/catch-tag-to-catch-reason.md"><code>catchTagToCatchReason</code></a></td><td>Suggests Effect.catchReason or Effect.catchReasons for handlers that re-fail unmatched reason._tag branches</td></tr>
|
|
127
130
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/catch-to-ignore.md"><code>catchToIgnore</code></a></td><td>Suggests using Effect.ignore or Effect.ignoreCause instead of Effect.catch/catchCause returning Effect.void</td></tr>
|
|
128
131
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/catch-to-or-else-succeed.md"><code>catchToOrElseSucceed</code></a></td><td>Suggests using Effect.orElseSucceed instead of Effect.catch + Effect.succeed</td></tr>
|
|
@@ -133,6 +136,7 @@ Some diagnostics are off by default or have a default severity of suggestion, bu
|
|
|
133
136
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/effect-map-void.md"><code>effectMapVoid</code></a></td><td>Suggests using Effect.asVoid instead of Effect.map(() => void 0), Effect.map(() => undefined), or Effect.map(() => {})</td></tr>
|
|
134
137
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/effect-succeed-with-void.md"><code>effectSucceedWithVoid</code></a></td><td>Suggests using Effect.void instead of Effect.succeed(undefined) or Effect.succeed(void 0)</td></tr>
|
|
135
138
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/flat-map-to-map.md"><code>flatMapToMap</code></a></td><td>Suggests using Effect.map instead of Effect.flatMap when the callback only wraps its result with Effect.succeed</td></tr>
|
|
139
|
+
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/map-some-to-as-some.md"><code>mapSomeToAsSome</code></a></td><td>Suggests using Effect.asSome instead of Effect.map when the mapper only wraps the success value with Option.some</td></tr>
|
|
136
140
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/missed-pipeable-opportunity.md"><code>missedPipeableOpportunity</code></a></td><td>Suggests using .pipe() for nested function calls</td></tr>
|
|
137
141
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/missing-effect-service-dependency.md"><code>missingEffectServiceDependency</code></a></td><td>Checks that Effect.Service dependencies satisfy all required layer inputs</td></tr>
|
|
138
142
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/missing-pipeable-signature.md"><code>missingPipeableSignature</code></a></td><td>Reports exported fixed-arity functions whose call signatures have no corresponding pipeable overload</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.38.0";
|
|
48904
48904
|
|
|
48905
48905
|
//#endregion
|
|
48906
48906
|
//#region src/metadata.json
|
|
@@ -49071,7 +49071,7 @@ var rules = [
|
|
|
49071
49071
|
"description": "Prevents services with type parameters that cannot be discriminated at runtime",
|
|
49072
49072
|
"defaultSeverity": "warning",
|
|
49073
49073
|
"fixable": false,
|
|
49074
|
-
"supportedEffect": ["v3"
|
|
49074
|
+
"supportedEffect": ["v3"],
|
|
49075
49075
|
"codes": [377043],
|
|
49076
49076
|
"preview": {
|
|
49077
49077
|
"sourceText": "import { Effect } from \"effect\"\n\nexport class Preview<_A> extends Effect.Service<Preview<any>>()(\"Preview\", {\n succeed: {}\n}) {}\n",
|
|
@@ -49546,7 +49546,7 @@ var rules = [
|
|
|
49546
49546
|
"description": "Suggests using Effect-based Schema methods instead of sync methods inside Effect generators",
|
|
49547
49547
|
"defaultSeverity": "suggestion",
|
|
49548
49548
|
"fixable": false,
|
|
49549
|
-
"supportedEffect": ["v3"],
|
|
49549
|
+
"supportedEffect": ["v3", "v4"],
|
|
49550
49550
|
"codes": [377037],
|
|
49551
49551
|
"preview": {
|
|
49552
49552
|
"sourceText": "import * as Effect from \"effect/Effect\"\nimport * as Schema from \"effect/Schema\"\n\nconst Person = Schema.Struct({ name: Schema.String, age: Schema.Finite })\n\nexport const preview = Effect.gen(function*() {\n const input = yield* Effect.succeed({ name: \"Ada\", age: 1 })\n return Schema.decodeSync(Person)(input)\n})\n",
|
|
@@ -49999,6 +49999,23 @@ var rules = [
|
|
|
49999
49999
|
}]
|
|
50000
50000
|
}
|
|
50001
50001
|
},
|
|
50002
|
+
{
|
|
50003
|
+
"name": "allOfMapToForEach",
|
|
50004
|
+
"group": "style",
|
|
50005
|
+
"description": "Suggests using Effect.forEach instead of Effect.all over an effectful Array#map",
|
|
50006
|
+
"defaultSeverity": "suggestion",
|
|
50007
|
+
"fixable": true,
|
|
50008
|
+
"supportedEffect": ["v3", "v4"],
|
|
50009
|
+
"codes": [377113],
|
|
50010
|
+
"preview": {
|
|
50011
|
+
"sourceText": "import { Effect } from \"effect\"\n\ndeclare const values: ReadonlyArray<number>\n\nexport const program = Effect.all(\n values.map((value) => Effect.succeed(value + 1))\n)\n",
|
|
50012
|
+
"diagnostics": [{
|
|
50013
|
+
"start": 101,
|
|
50014
|
+
"end": 111,
|
|
50015
|
+
"text": "`Effect.forEach` expresses this effectful array mapping more directly than `Effect.all` over `Array#map`. effect(allOfMapToForEach)"
|
|
50016
|
+
}]
|
|
50017
|
+
}
|
|
50018
|
+
},
|
|
50002
50019
|
{
|
|
50003
50020
|
"name": "catchAllToMapError",
|
|
50004
50021
|
"group": "style",
|
|
@@ -50033,6 +50050,40 @@ var rules = [
|
|
|
50033
50050
|
}]
|
|
50034
50051
|
}
|
|
50035
50052
|
},
|
|
50053
|
+
{
|
|
50054
|
+
"name": "catchConditionalRefailToCatchIf",
|
|
50055
|
+
"group": "style",
|
|
50056
|
+
"description": "Suggests Effect.catchIf, Effect.catchCauseIf, or Effect.catchTag for conditional catch handlers that re-fail their untouched input",
|
|
50057
|
+
"defaultSeverity": "suggestion",
|
|
50058
|
+
"fixable": false,
|
|
50059
|
+
"supportedEffect": ["v4"],
|
|
50060
|
+
"codes": [377116],
|
|
50061
|
+
"preview": {
|
|
50062
|
+
"sourceText": "import { Data, Effect } from \"effect\"\n\nclass NotFound extends Data.TaggedError(\"NotFound\")<{}> {}\nclass DatabaseError extends Data.TaggedError(\"DatabaseError\")<{}> {}\n\ndeclare const program: Effect.Effect<string, NotFound | DatabaseError>\n\nexport const recovered = program.pipe(\n Effect.catch((error) =>\n error._tag === \"NotFound\" ? Effect.succeed(\"guest\") : Effect.fail(error)\n )\n)\n",
|
|
50063
|
+
"diagnostics": [{
|
|
50064
|
+
"start": 281,
|
|
50065
|
+
"end": 293,
|
|
50066
|
+
"text": "`Effect.catchTag` expresses selective recovery more directly than `Effect.catch` with a conditional `Effect.fail` passthrough. effect(catchConditionalRefailToCatchIf)"
|
|
50067
|
+
}]
|
|
50068
|
+
}
|
|
50069
|
+
},
|
|
50070
|
+
{
|
|
50071
|
+
"name": "catchDieToOrDie",
|
|
50072
|
+
"group": "style",
|
|
50073
|
+
"description": "Suggests using Effect.orDie instead of Effect.catch or Effect.catchAll with an identity-forwarding Effect.die handler",
|
|
50074
|
+
"defaultSeverity": "suggestion",
|
|
50075
|
+
"fixable": true,
|
|
50076
|
+
"supportedEffect": ["v3", "v4"],
|
|
50077
|
+
"codes": [377115],
|
|
50078
|
+
"preview": {
|
|
50079
|
+
"sourceText": "import { Effect } from \"effect\"\n\ndeclare const readConfig: Effect.Effect<string, Error>\n\nexport const program = readConfig.pipe(\n Effect.catch((error) => Effect.die(error))\n)\n",
|
|
50080
|
+
"diagnostics": [{
|
|
50081
|
+
"start": 131,
|
|
50082
|
+
"end": 143,
|
|
50083
|
+
"text": "`Effect.orDie` expresses escalating every typed failure into a defect more directly than `Effect.catch` with an identity-forwarding `Effect.die` handler. effect(catchDieToOrDie)"
|
|
50084
|
+
}]
|
|
50085
|
+
}
|
|
50086
|
+
},
|
|
50036
50087
|
{
|
|
50037
50088
|
"name": "catchTagToCatchReason",
|
|
50038
50089
|
"group": "style",
|
|
@@ -50203,6 +50254,35 @@ var rules = [
|
|
|
50203
50254
|
}]
|
|
50204
50255
|
}
|
|
50205
50256
|
},
|
|
50257
|
+
{
|
|
50258
|
+
"name": "mapSomeToAsSome",
|
|
50259
|
+
"group": "style",
|
|
50260
|
+
"description": "Suggests using Effect.asSome instead of Effect.map when the mapper only wraps the success value with Option.some",
|
|
50261
|
+
"defaultSeverity": "suggestion",
|
|
50262
|
+
"fixable": true,
|
|
50263
|
+
"supportedEffect": ["v3", "v4"],
|
|
50264
|
+
"codes": [377114],
|
|
50265
|
+
"preview": {
|
|
50266
|
+
"sourceText": "import { Effect, Option } from \"effect\"\n\nconst numberEffect = Effect.succeed(1)\n\nexport const pipeable = numberEffect.pipe(\n Effect.map(Option.some)\n)\n\nexport const etaExpanded = numberEffect.pipe(\n Effect.map((value) => Option.some(value))\n)\n\nexport const dataFirst = Effect.map(numberEffect, Option.some)\n\n",
|
|
50267
|
+
"diagnostics": [
|
|
50268
|
+
{
|
|
50269
|
+
"start": 126,
|
|
50270
|
+
"end": 136,
|
|
50271
|
+
"text": "`Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)"
|
|
50272
|
+
},
|
|
50273
|
+
{
|
|
50274
|
+
"start": 201,
|
|
50275
|
+
"end": 211,
|
|
50276
|
+
"text": "`Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)"
|
|
50277
|
+
},
|
|
50278
|
+
{
|
|
50279
|
+
"start": 271,
|
|
50280
|
+
"end": 281,
|
|
50281
|
+
"text": "`Effect.asSome` expresses wrapping the success value in `Option.some` directly. effect(mapSomeToAsSome)"
|
|
50282
|
+
}
|
|
50283
|
+
]
|
|
50284
|
+
}
|
|
50285
|
+
},
|
|
50206
50286
|
{
|
|
50207
50287
|
"name": "missedPipeableOpportunity",
|
|
50208
50288
|
"group": "style",
|
|
@@ -50614,7 +50694,7 @@ var metadata_default = {
|
|
|
50614
50694
|
var tags = {
|
|
50615
50695
|
"typescript": {
|
|
50616
50696
|
"latest": "7.0.2",
|
|
50617
|
-
"next": "7.1.0-dev.
|
|
50697
|
+
"next": "7.1.0-dev.20260826.1"
|
|
50618
50698
|
},
|
|
50619
50699
|
"oxlint": { "latest": "1.80.0" },
|
|
50620
50700
|
"oxlint-tsgolint": { "latest": "7.0.2001" }
|
|
@@ -50625,8 +50705,8 @@ var components = {
|
|
|
50625
50705
|
"gitHead": "2bd066d87f5bafd315be9f40889d0a60b9e58e0b",
|
|
50626
50706
|
"provider": "typescript-go"
|
|
50627
50707
|
},
|
|
50628
|
-
"7.1.0-dev.
|
|
50629
|
-
"gitHead": "
|
|
50708
|
+
"7.1.0-dev.20260826.1": {
|
|
50709
|
+
"gitHead": "5739027c9a7df24e27123f453a50c011b37717b6",
|
|
50630
50710
|
"provider": "typescript"
|
|
50631
50711
|
}
|
|
50632
50712
|
},
|
|
@@ -200371,8 +200451,9 @@ const diagnosticsCommand = make("diagnostics", {
|
|
|
200371
200451
|
strict: boolean("strict").pipe(withDefault(false), withDescription$1("Treat warnings as errors (affects exit code)")),
|
|
200372
200452
|
severity: string("severity").pipe(optional, withDescription$1("Filter by severity levels (comma-separated: error,warning,message)")),
|
|
200373
200453
|
progress: boolean("progress").pipe(withDefault(false), withDescription$1("Show progress as files are checked (outputs to stderr)")),
|
|
200374
|
-
lspconfig: string("lspconfig").pipe(optional, withDescription$1("An optional inline JSON lsp config that replaces the current project lsp config"))
|
|
200375
|
-
|
|
200454
|
+
lspconfig: string("lspconfig").pipe(optional, withDescription$1("An optional inline JSON lsp config that replaces the current project lsp config")),
|
|
200455
|
+
listFiles: boolean("list-files").pipe(withDefault(false), withDescription$1("Also emit, per checked file, the detected and supported Effect major versions"))
|
|
200456
|
+
}).pipe(withDescription("Gets the Effect language service diagnostics on the given files or project"), withHandler(({ file, format, listFiles, lspconfig, progress, project, severity, strict }) => gen(function* () {
|
|
200376
200457
|
const fs = yield* FileSystem;
|
|
200377
200458
|
const replacement = yield* resolveTypeScriptExecutable;
|
|
200378
200459
|
yield* fs.chmod(replacement.path, 493).pipe(mapError(() => new ChmodBinaryError({ targetPath: replacement.path })));
|
|
@@ -200384,7 +200465,8 @@ const diagnosticsCommand = make("diagnostics", {
|
|
|
200384
200465
|
strict,
|
|
200385
200466
|
severity: getOrUndefined$1(severity),
|
|
200386
200467
|
progress,
|
|
200387
|
-
lspconfig: getOrUndefined$1(lspconfig)
|
|
200468
|
+
lspconfig: getOrUndefined$1(lspconfig),
|
|
200469
|
+
listFiles
|
|
200388
200470
|
}));
|
|
200389
200471
|
})));
|
|
200390
200472
|
make("tsgo").pipe(withSubcommands([
|
package/oxlint-presets/index.js
CHANGED
|
@@ -105,6 +105,7 @@ export const recommended = {
|
|
|
105
105
|
"effecttsgo/async-function": "warn",
|
|
106
106
|
"effecttsgo/catch-all-to-map-error": "warn",
|
|
107
107
|
"effecttsgo/catch-chain-to-first-success-of": "warn",
|
|
108
|
+
"effecttsgo/catch-conditional-refail-to-catch-if": "warn",
|
|
108
109
|
"effecttsgo/catch-tag-to-catch-reason": "warn",
|
|
109
110
|
"effecttsgo/catch-to-ignore": "warn",
|
|
110
111
|
"effecttsgo/catch-to-or-else-succeed": "warn",
|
|
@@ -195,6 +196,7 @@ export const style = {
|
|
|
195
196
|
"rules": {
|
|
196
197
|
"effecttsgo/catch-all-to-map-error": "warn",
|
|
197
198
|
"effecttsgo/catch-chain-to-first-success-of": "warn",
|
|
199
|
+
"effecttsgo/catch-conditional-refail-to-catch-if": "warn",
|
|
198
200
|
"effecttsgo/catch-tag-to-catch-reason": "warn",
|
|
199
201
|
"effecttsgo/catch-to-ignore": "warn",
|
|
200
202
|
"effecttsgo/catch-to-or-else-succeed": "warn",
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"effecttsgo/async-function": "warn",
|
|
11
11
|
"effecttsgo/catch-all-to-map-error": "warn",
|
|
12
12
|
"effecttsgo/catch-chain-to-first-success-of": "warn",
|
|
13
|
+
"effecttsgo/catch-conditional-refail-to-catch-if": "warn",
|
|
13
14
|
"effecttsgo/catch-tag-to-catch-reason": "warn",
|
|
14
15
|
"effecttsgo/catch-to-ignore": "warn",
|
|
15
16
|
"effecttsgo/catch-to-or-else-succeed": "warn",
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
"rules": {
|
|
9
9
|
"effecttsgo/catch-all-to-map-error": "warn",
|
|
10
10
|
"effecttsgo/catch-chain-to-first-success-of": "warn",
|
|
11
|
+
"effecttsgo/catch-conditional-refail-to-catch-if": "warn",
|
|
11
12
|
"effecttsgo/catch-tag-to-catch-reason": "warn",
|
|
12
13
|
"effecttsgo/catch-to-ignore": "warn",
|
|
13
14
|
"effecttsgo/catch-to-or-else-succeed": "warn",
|
package/oxlint-schema.json
CHANGED
|
@@ -2236,18 +2236,27 @@
|
|
|
2236
2236
|
"effecttsgo/abort-controller-in-effect": {
|
|
2237
2237
|
"$ref": "#/definitions/RuleNoConfig"
|
|
2238
2238
|
},
|
|
2239
|
+
"effecttsgo/all-of-map-to-for-each": {
|
|
2240
|
+
"$ref": "#/definitions/RuleNoConfig"
|
|
2241
|
+
},
|
|
2239
2242
|
"effecttsgo/any-unknown-in-error-context": {
|
|
2240
2243
|
"$ref": "#/definitions/RuleNoConfig"
|
|
2241
2244
|
},
|
|
2242
2245
|
"effecttsgo/async-function": {
|
|
2243
2246
|
"$ref": "#/definitions/RuleNoConfig"
|
|
2244
2247
|
},
|
|
2248
|
+
"effecttsgo/catch-die-to-or-die": {
|
|
2249
|
+
"$ref": "#/definitions/RuleNoConfig"
|
|
2250
|
+
},
|
|
2245
2251
|
"effecttsgo/catch-all-to-map-error": {
|
|
2246
2252
|
"$ref": "#/definitions/RuleNoConfig"
|
|
2247
2253
|
},
|
|
2248
2254
|
"effecttsgo/catch-chain-to-first-success-of": {
|
|
2249
2255
|
"$ref": "#/definitions/RuleNoConfig"
|
|
2250
2256
|
},
|
|
2257
|
+
"effecttsgo/catch-conditional-refail-to-catch-if": {
|
|
2258
|
+
"$ref": "#/definitions/RuleNoConfig"
|
|
2259
|
+
},
|
|
2251
2260
|
"effecttsgo/catch-tag-to-catch-reason": {
|
|
2252
2261
|
"$ref": "#/definitions/RuleNoConfig"
|
|
2253
2262
|
},
|
|
@@ -2371,6 +2380,9 @@
|
|
|
2371
2380
|
"effecttsgo/leaking-requirements": {
|
|
2372
2381
|
"$ref": "#/definitions/RuleNoConfig"
|
|
2373
2382
|
},
|
|
2383
|
+
"effecttsgo/map-some-to-as-some": {
|
|
2384
|
+
"$ref": "#/definitions/RuleNoConfig"
|
|
2385
|
+
},
|
|
2374
2386
|
"effecttsgo/missed-pipeable-opportunity": {
|
|
2375
2387
|
"$ref": "#/definitions/RuleNoConfig"
|
|
2376
2388
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/tsgo",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.38.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.38.0",
|
|
45
|
+
"@effect/tsgo-win32-arm64": "0.38.0",
|
|
46
|
+
"@effect/tsgo-linux-x64": "0.38.0",
|
|
47
|
+
"@effect/tsgo-linux-arm64": "0.38.0",
|
|
48
|
+
"@effect/tsgo-linux-arm": "0.38.0",
|
|
49
|
+
"@effect/tsgo-darwin-x64": "0.38.0",
|
|
50
|
+
"@effect/tsgo-darwin-arm64": "0.38.0"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@effect/platform-node": "^4.0.0-beta.107",
|
package/schema.json
CHANGED
|
@@ -1815,6 +1815,11 @@
|
|
|
1815
1815
|
"default": "suggestion",
|
|
1816
1816
|
"description": "Warns when manually constructing AbortController inside Effect generators instead of using Effect.abortSignal"
|
|
1817
1817
|
},
|
|
1818
|
+
"allOfMapToForEach": {
|
|
1819
|
+
"$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
|
|
1820
|
+
"default": "suggestion",
|
|
1821
|
+
"description": "Suggests using Effect.forEach instead of Effect.all over an effectful Array#map"
|
|
1822
|
+
},
|
|
1818
1823
|
"anyUnknownInErrorContext": {
|
|
1819
1824
|
"$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
|
|
1820
1825
|
"default": "off",
|
|
@@ -1825,6 +1830,11 @@
|
|
|
1825
1830
|
"default": "off",
|
|
1826
1831
|
"description": "Warns when declaring async functions and suggests using Effect values and Effect.gen for async control flow"
|
|
1827
1832
|
},
|
|
1833
|
+
"catchDieToOrDie": {
|
|
1834
|
+
"$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
|
|
1835
|
+
"default": "suggestion",
|
|
1836
|
+
"description": "Suggests using Effect.orDie instead of Effect.catch or Effect.catchAll with an identity-forwarding Effect.die handler"
|
|
1837
|
+
},
|
|
1828
1838
|
"catchAllToMapError": {
|
|
1829
1839
|
"$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
|
|
1830
1840
|
"default": "suggestion",
|
|
@@ -1835,6 +1845,11 @@
|
|
|
1835
1845
|
"default": "suggestion",
|
|
1836
1846
|
"description": "Suggests Effect.firstSuccessOf for consecutive error-independent Effect.catch fallbacks when the error type is preserved"
|
|
1837
1847
|
},
|
|
1848
|
+
"catchConditionalRefailToCatchIf": {
|
|
1849
|
+
"$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
|
|
1850
|
+
"default": "suggestion",
|
|
1851
|
+
"description": "Suggests Effect.catchIf, Effect.catchCauseIf, or Effect.catchTag for conditional catch handlers that re-fail their untouched input"
|
|
1852
|
+
},
|
|
1838
1853
|
"catchTagToCatchReason": {
|
|
1839
1854
|
"$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
|
|
1840
1855
|
"default": "suggestion",
|
|
@@ -2040,6 +2055,11 @@
|
|
|
2040
2055
|
"default": "suggestion",
|
|
2041
2056
|
"description": "Detects implementation services leaked in service methods"
|
|
2042
2057
|
},
|
|
2058
|
+
"mapSomeToAsSome": {
|
|
2059
|
+
"$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
|
|
2060
|
+
"default": "suggestion",
|
|
2061
|
+
"description": "Suggests using Effect.asSome instead of Effect.map when the mapper only wraps the success value with Option.some"
|
|
2062
|
+
},
|
|
2043
2063
|
"missedPipeableOpportunity": {
|
|
2044
2064
|
"$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
|
|
2045
2065
|
"default": "off",
|