@effect/tsgo 0.52.0 → 0.53.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 +26 -3
- package/dist/effect-tsgo.cjs +63 -6
- package/oxlint-presets/correctness.json +1 -0
- package/oxlint-presets/index.js +5 -0
- package/oxlint-presets/recommended.json +1 -0
- package/oxlint-presets/strict.json +1 -0
- package/oxlint-presets/style.json +2 -0
- package/oxlint-schema.json +39 -1
- package/package.json +8 -8
- package/schema.json +76 -6
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.53.0`:
|
|
42
42
|
|
|
43
43
|
| Component | Supported versions |
|
|
44
44
|
|---|---|
|
|
45
|
-
| TypeScript | `7.0.2`, `7.1.0-dev.
|
|
46
|
-
| Oxlint | `1.83.0`, `1.85.0`, `1.86.0`, `1.87.0` |
|
|
45
|
+
| TypeScript | `7.0.2`, `7.1.0-dev.20261013.1` |
|
|
46
|
+
| Oxlint | `1.83.0`, `1.85.0`, `1.86.0`, `1.87.0`, `1.88.0` |
|
|
47
47
|
| oxlint-tsgolint | `7.0.2001`, `7.0.2003`, `7.0.2004` |
|
|
48
48
|
<!-- supported-components:end -->
|
|
49
49
|
|
|
@@ -62,6 +62,7 @@ Some diagnostics are off by default or have a default severity of suggestion, bu
|
|
|
62
62
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/class-self-mismatch.md"><code>classSelfMismatch</code></a></td><td>Ensures Self type parameter matches the class name in Context/Service/Tag/Schema classes</td></tr>
|
|
63
63
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/duplicate-package.md"><code>duplicatePackage</code></a></td><td>Warns when multiple versions of an Effect-related package are detected in the program</td></tr>
|
|
64
64
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/effect-fn-implicit-any.md"><code>effectFnImplicitAny</code></a></td><td>Mirrors noImplicitAny for unannotated Effect.fn, Effect.fnUntraced, and Effect.fnUntracedEager callback parameters when no outer contextual function type exists. Requires TS's noImplicitAny: true</td></tr>
|
|
65
|
+
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/error-payload-shadows-name.md"><code>errorPayloadShadowsName</code></a></td><td>Detects error payload fields named `name` that shadow the error's own name</td></tr>
|
|
65
66
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/experimental-api-usage.md"><code>experimentalApiUsage</code></a></td><td>Warns when using an API marked @stability experimental</td></tr>
|
|
66
67
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/floating-effect.md"><code>floatingEffect</code></a></td><td>Detects Effect values that are neither yielded nor assigned</td></tr>
|
|
67
68
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/floating-effect-in-vitest.md"><code>floatingEffectInVitest</code></a></td><td>Detects Effects returned from non-Effect-aware Vitest callbacks</td></tr>
|
|
@@ -162,6 +163,8 @@ Some diagnostics are off by default or have a default severity of suggestion, bu
|
|
|
162
163
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/nested-effect-gen-yield.md"><code>nestedEffectGenYield</code></a></td><td>Warns when yielding a nested bare Effect.gen inside an existing Effect generator context</td></tr>
|
|
163
164
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/new-schema-class.md"><code>newSchemaClass</code></a></td><td>Suggests using Schema make instead of new for Schema classes</td></tr>
|
|
164
165
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/option-match-to-from-option.md"><code>optionMatchToFromOption</code></a></td><td>Suggests Effect.fromOption when Option.match or an Option tag conditional only converts Some to Effect.succeed and None to Effect.fail</td></tr>
|
|
166
|
+
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/prefer-barrel-import.md"><code>preferBarrelImport</code></a></td><td>Reports imports of individual modules from packages configured in barrelImportPackages that should be named imports from the package barrel</td></tr>
|
|
167
|
+
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/prefer-namespace-import.md"><code>preferNamespaceImport</code></a></td><td>Reports named imports from packages configured in namespaceImportPackages that should be namespace imports</td></tr>
|
|
165
168
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/prefer-schema-tagged-error.md"><code>preferSchemaTaggedError</code></a></td><td>Suggests using Schema.TaggedError instead of Data.TaggedError</td></tr>
|
|
166
169
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/prefer-schema-type-property.md"><code>preferSchemaTypeProperty</code></a></td><td>Disallows Schema.Schema.Type<typeof X> in favor of typeof X.Type</td></tr>
|
|
167
170
|
<tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/prefer-succeed-some-or-none.md"><code>preferSucceedSomeOrNone</code></a></td><td>Suggests using Effect.succeedNone or Effect.succeedSome instead of wrapping Option.none or Option.some with Effect.succeed</td></tr>
|
|
@@ -372,6 +375,26 @@ while `effect/http/HttpClient#get` permits only its exported `get` API.
|
|
|
372
375
|
Matching is case-sensitive and respects path segments: `effect/http` does not
|
|
373
376
|
permit `effect/http-api`. Per-file `overrides` replace the base list.
|
|
374
377
|
|
|
378
|
+
The import style options `namespaceImportPackages`, `barrelImportPackages`,
|
|
379
|
+
`importAliases`, and `topLevelNamedReexports` can also be set per file in
|
|
380
|
+
`overrides`. Auto-import, the import quick fixes, and the `preferNamespaceImport`
|
|
381
|
+
and `preferBarrelImport` diagnostics all use the value resolved for the current
|
|
382
|
+
file. A scoped value replaces the base value, so this override moves the
|
|
383
|
+
`legacy/` folder from namespace imports to barrel imports:
|
|
384
|
+
|
|
385
|
+
```json
|
|
386
|
+
{
|
|
387
|
+
"namespaceImportPackages": ["effect"],
|
|
388
|
+
"overrides": [{
|
|
389
|
+
"include": ["src/legacy/**/*.ts"],
|
|
390
|
+
"options": {
|
|
391
|
+
"namespaceImportPackages": [],
|
|
392
|
+
"barrelImportPackages": ["effect"]
|
|
393
|
+
}
|
|
394
|
+
}]
|
|
395
|
+
}
|
|
396
|
+
```
|
|
397
|
+
|
|
375
398
|
`apiStabilityLeak` ignores exports marked `@internal`. The tag is the compiler's
|
|
376
399
|
`stripInternal` declaration-emit marker, and it is honoured wherever it is
|
|
377
400
|
written: on an exported declaration, on a named, star or namespace forwarding
|
package/dist/effect-tsgo.cjs
CHANGED
|
@@ -52737,7 +52737,7 @@ const runWith = (command, config) => {
|
|
|
52737
52737
|
//#endregion
|
|
52738
52738
|
//#region package.json
|
|
52739
52739
|
var name = "@effect/tsgo";
|
|
52740
|
-
var version = "0.
|
|
52740
|
+
var version = "0.53.0";
|
|
52741
52741
|
|
|
52742
52742
|
//#endregion
|
|
52743
52743
|
//#region src/metadata.json
|
|
@@ -52799,6 +52799,7 @@ var presets$1 = [
|
|
|
52799
52799
|
"effectMapVoid": "suggestion",
|
|
52800
52800
|
"effectSleepZeroToYieldNow": "suggestion",
|
|
52801
52801
|
"effectSucceedWithVoid": "suggestion",
|
|
52802
|
+
"errorPayloadShadowsName": "suggestion",
|
|
52802
52803
|
"experimentalApiUsage": "warning",
|
|
52803
52804
|
"flatMapConditionalToFilterOrFail": "suggestion",
|
|
52804
52805
|
"flatMapIgnoredParamToAndThen": "suggestion",
|
|
@@ -52890,6 +52891,7 @@ var presets$1 = [
|
|
|
52890
52891
|
"effectMapVoid": "error",
|
|
52891
52892
|
"effectSleepZeroToYieldNow": "error",
|
|
52892
52893
|
"effectSucceedWithVoid": "error",
|
|
52894
|
+
"errorPayloadShadowsName": "error",
|
|
52893
52895
|
"experimentalApiUsage": "error",
|
|
52894
52896
|
"flatMapConditionalToFilterOrFail": "error",
|
|
52895
52897
|
"flatMapIgnoredParamToAndThen": "error",
|
|
@@ -52959,6 +52961,7 @@ var presets$1 = [
|
|
|
52959
52961
|
"classSelfMismatch": "warning",
|
|
52960
52962
|
"duplicatePackage": "warning",
|
|
52961
52963
|
"effectFnImplicitAny": "warning",
|
|
52964
|
+
"errorPayloadShadowsName": "warning",
|
|
52962
52965
|
"experimentalApiUsage": "warning",
|
|
52963
52966
|
"floatingEffect": "warning",
|
|
52964
52967
|
"floatingEffectInVitest": "warning",
|
|
@@ -53074,6 +53077,8 @@ var presets$1 = [
|
|
|
53074
53077
|
"nestedEffectGenYield": "warning",
|
|
53075
53078
|
"newSchemaClass": "warning",
|
|
53076
53079
|
"optionMatchToFromOption": "warning",
|
|
53080
|
+
"preferBarrelImport": "warning",
|
|
53081
|
+
"preferNamespaceImport": "warning",
|
|
53077
53082
|
"preferSchemaTaggedError": "warning",
|
|
53078
53083
|
"preferSchemaTypeProperty": "warning",
|
|
53079
53084
|
"preferSucceedSomeOrNone": "warning",
|
|
@@ -53182,6 +53187,23 @@ var rules = [
|
|
|
53182
53187
|
}]
|
|
53183
53188
|
}
|
|
53184
53189
|
},
|
|
53190
|
+
{
|
|
53191
|
+
"name": "errorPayloadShadowsName",
|
|
53192
|
+
"group": "correctness",
|
|
53193
|
+
"description": "Detects error payload fields named `name` that shadow the error's own name",
|
|
53194
|
+
"defaultSeverity": "suggestion",
|
|
53195
|
+
"fixable": false,
|
|
53196
|
+
"supportedEffect": ["v3", "v4"],
|
|
53197
|
+
"codes": [377145],
|
|
53198
|
+
"preview": {
|
|
53199
|
+
"sourceText": "import { Data } from \"effect\"\n\nexport class ToolNotFound extends Data.TaggedError(\"ToolNotFound\")<{ readonly name: string }> {}\nnew ToolNotFound({ name: \"search\" }).name\n",
|
|
53200
|
+
"diagnostics": [{
|
|
53201
|
+
"start": 109,
|
|
53202
|
+
"end": 113,
|
|
53203
|
+
"text": "The payload field `name` shadows this error's own `name`, so logs and `String(error)` show the field value instead of the error type. Consider renaming it. effect(errorPayloadShadowsName)"
|
|
53204
|
+
}]
|
|
53205
|
+
}
|
|
53206
|
+
},
|
|
53185
53207
|
{
|
|
53186
53208
|
"name": "experimentalApiUsage",
|
|
53187
53209
|
"group": "correctness",
|
|
@@ -54863,6 +54885,40 @@ var rules = [
|
|
|
54863
54885
|
}]
|
|
54864
54886
|
}
|
|
54865
54887
|
},
|
|
54888
|
+
{
|
|
54889
|
+
"name": "preferBarrelImport",
|
|
54890
|
+
"group": "style",
|
|
54891
|
+
"description": "Reports imports of individual modules from packages configured in barrelImportPackages that should be named imports from the package barrel",
|
|
54892
|
+
"defaultSeverity": "off",
|
|
54893
|
+
"fixable": false,
|
|
54894
|
+
"supportedEffect": ["v3", "v4"],
|
|
54895
|
+
"codes": [377148],
|
|
54896
|
+
"preview": {
|
|
54897
|
+
"sourceText": "import * as Record from \"effect/Record\"\n\nexport const keys = Record.keys({ a: 1 })\n",
|
|
54898
|
+
"diagnostics": [{
|
|
54899
|
+
"start": 24,
|
|
54900
|
+
"end": 39,
|
|
54901
|
+
"text": "'effect/Record' is imported directly, but barrelImportPackages expects named imports from the barrel 'effect'. Use 'import { Record } from \"effect\"' instead. effect(preferBarrelImport)"
|
|
54902
|
+
}]
|
|
54903
|
+
}
|
|
54904
|
+
},
|
|
54905
|
+
{
|
|
54906
|
+
"name": "preferNamespaceImport",
|
|
54907
|
+
"group": "style",
|
|
54908
|
+
"description": "Reports named imports from packages configured in namespaceImportPackages that should be namespace imports",
|
|
54909
|
+
"defaultSeverity": "off",
|
|
54910
|
+
"fixable": false,
|
|
54911
|
+
"supportedEffect": ["v3", "v4"],
|
|
54912
|
+
"codes": [377146, 377147],
|
|
54913
|
+
"preview": {
|
|
54914
|
+
"sourceText": "import { Effect } from \"effect\"\n\nexport const program = Effect.succeed(1)\n",
|
|
54915
|
+
"diagnostics": [{
|
|
54916
|
+
"start": 9,
|
|
54917
|
+
"end": 15,
|
|
54918
|
+
"text": "'Effect' is imported by name from 'effect', but namespaceImportPackages expects a namespace import. Use 'import * as Effect from \"effect/Effect\"' instead. effect(preferNamespaceImport)"
|
|
54919
|
+
}]
|
|
54920
|
+
}
|
|
54921
|
+
},
|
|
54866
54922
|
{
|
|
54867
54923
|
"name": "preferSchemaTaggedError",
|
|
54868
54924
|
"group": "style",
|
|
@@ -55299,9 +55355,9 @@ var metadata_default = {
|
|
|
55299
55355
|
var tags = {
|
|
55300
55356
|
"typescript": {
|
|
55301
55357
|
"latest": "7.0.2",
|
|
55302
|
-
"next": "7.1.0-dev.
|
|
55358
|
+
"next": "7.1.0-dev.20261013.1"
|
|
55303
55359
|
},
|
|
55304
|
-
"oxlint": { "latest": "1.
|
|
55360
|
+
"oxlint": { "latest": "1.88.0" },
|
|
55305
55361
|
"oxlint-tsgolint": { "latest": "7.0.2004" }
|
|
55306
55362
|
};
|
|
55307
55363
|
var components = {
|
|
@@ -55310,8 +55366,8 @@ var components = {
|
|
|
55310
55366
|
"gitHead": "2bd066d87f5bafd315be9f40889d0a60b9e58e0b",
|
|
55311
55367
|
"provider": "typescript-go"
|
|
55312
55368
|
},
|
|
55313
|
-
"7.1.0-dev.
|
|
55314
|
-
"gitHead": "
|
|
55369
|
+
"7.1.0-dev.20261013.1": {
|
|
55370
|
+
"gitHead": "b5c34ba0c61a756c8abaf133236dddf982c27f45",
|
|
55315
55371
|
"provider": "typescript"
|
|
55316
55372
|
}
|
|
55317
55373
|
},
|
|
@@ -55333,7 +55389,8 @@ var components = {
|
|
|
55333
55389
|
"1.83.0": { "gitHead": "7bf68f70c20f5329251f19be95076f6eab4fe396" },
|
|
55334
55390
|
"1.85.0": { "gitHead": "288d8cc77984b0a3851c58c423ffe9e6edc79f2e" },
|
|
55335
55391
|
"1.86.0": { "gitHead": "2ae2939bb2fd98796393658b21556b2a2467e047" },
|
|
55336
|
-
"1.87.0": { "gitHead": "2bd08ebe8f36fcf1954a675ffdeb4c6d0129f609" }
|
|
55392
|
+
"1.87.0": { "gitHead": "2bd08ebe8f36fcf1954a675ffdeb4c6d0129f609" },
|
|
55393
|
+
"1.88.0": { "gitHead": "6941b4ed45ead21c45bc2164cb80a180eed85b43" }
|
|
55337
55394
|
}
|
|
55338
55395
|
};
|
|
55339
55396
|
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"effecttsgo/class-self-mismatch": "warn",
|
|
11
11
|
"effecttsgo/duplicate-package": "warn",
|
|
12
12
|
"effecttsgo/effect-fn-implicit-any": "warn",
|
|
13
|
+
"effecttsgo/error-payload-shadows-name": "warn",
|
|
13
14
|
"effecttsgo/experimental-api-usage": "warn",
|
|
14
15
|
"effecttsgo/floating-effect": "warn",
|
|
15
16
|
"effecttsgo/floating-effect-in-vitest": "warn",
|
package/oxlint-presets/index.js
CHANGED
|
@@ -43,6 +43,7 @@ export const correctness = {
|
|
|
43
43
|
"effecttsgo/class-self-mismatch": "warn",
|
|
44
44
|
"effecttsgo/duplicate-package": "warn",
|
|
45
45
|
"effecttsgo/effect-fn-implicit-any": "warn",
|
|
46
|
+
"effecttsgo/error-payload-shadows-name": "warn",
|
|
46
47
|
"effecttsgo/experimental-api-usage": "warn",
|
|
47
48
|
"effecttsgo/floating-effect": "warn",
|
|
48
49
|
"effecttsgo/floating-effect-in-vitest": "warn",
|
|
@@ -147,6 +148,7 @@ export const recommended = {
|
|
|
147
148
|
"effecttsgo/effect-map-void": "warn",
|
|
148
149
|
"effecttsgo/effect-sleep-zero-to-yield-now": "warn",
|
|
149
150
|
"effecttsgo/effect-succeed-with-void": "warn",
|
|
151
|
+
"effecttsgo/error-payload-shadows-name": "warn",
|
|
150
152
|
"effecttsgo/experimental-api-usage": "warn",
|
|
151
153
|
"effecttsgo/flat-map-conditional-to-filter-or-fail": "warn",
|
|
152
154
|
"effecttsgo/flat-map-ignored-param-to-and-then": "warn",
|
|
@@ -243,6 +245,7 @@ export const strict = {
|
|
|
243
245
|
"effecttsgo/effect-map-void": "error",
|
|
244
246
|
"effecttsgo/effect-sleep-zero-to-yield-now": "error",
|
|
245
247
|
"effecttsgo/effect-succeed-with-void": "error",
|
|
248
|
+
"effecttsgo/error-payload-shadows-name": "error",
|
|
246
249
|
"effecttsgo/experimental-api-usage": "error",
|
|
247
250
|
"effecttsgo/flat-map-conditional-to-filter-or-fail": "error",
|
|
248
251
|
"effecttsgo/flat-map-ignored-param-to-and-then": "error",
|
|
@@ -346,6 +349,8 @@ export const style = {
|
|
|
346
349
|
"effecttsgo/nested-effect-gen-yield": "warn",
|
|
347
350
|
"effecttsgo/new-schema-class": "warn",
|
|
348
351
|
"effecttsgo/option-match-to-from-option": "warn",
|
|
352
|
+
"effecttsgo/prefer-barrel-import": "warn",
|
|
353
|
+
"effecttsgo/prefer-namespace-import": "warn",
|
|
349
354
|
"effecttsgo/prefer-schema-tagged-error": "warn",
|
|
350
355
|
"effecttsgo/prefer-schema-type-property": "warn",
|
|
351
356
|
"effecttsgo/prefer-succeed-some-or-none": "warn",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"effecttsgo/effect-map-void": "warn",
|
|
33
33
|
"effecttsgo/effect-sleep-zero-to-yield-now": "warn",
|
|
34
34
|
"effecttsgo/effect-succeed-with-void": "warn",
|
|
35
|
+
"effecttsgo/error-payload-shadows-name": "warn",
|
|
35
36
|
"effecttsgo/experimental-api-usage": "warn",
|
|
36
37
|
"effecttsgo/flat-map-conditional-to-filter-or-fail": "warn",
|
|
37
38
|
"effecttsgo/flat-map-ignored-param-to-and-then": "warn",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"effecttsgo/effect-map-void": "error",
|
|
33
33
|
"effecttsgo/effect-sleep-zero-to-yield-now": "error",
|
|
34
34
|
"effecttsgo/effect-succeed-with-void": "error",
|
|
35
|
+
"effecttsgo/error-payload-shadows-name": "error",
|
|
35
36
|
"effecttsgo/experimental-api-usage": "error",
|
|
36
37
|
"effecttsgo/flat-map-conditional-to-filter-or-fail": "error",
|
|
37
38
|
"effecttsgo/flat-map-ignored-param-to-and-then": "error",
|
|
@@ -39,6 +39,8 @@
|
|
|
39
39
|
"effecttsgo/nested-effect-gen-yield": "warn",
|
|
40
40
|
"effecttsgo/new-schema-class": "warn",
|
|
41
41
|
"effecttsgo/option-match-to-from-option": "warn",
|
|
42
|
+
"effecttsgo/prefer-barrel-import": "warn",
|
|
43
|
+
"effecttsgo/prefer-namespace-import": "warn",
|
|
42
44
|
"effecttsgo/prefer-schema-tagged-error": "warn",
|
|
43
45
|
"effecttsgo/prefer-schema-type-property": "warn",
|
|
44
46
|
"effecttsgo/prefer-succeed-some-or-none": "warn",
|
package/oxlint-schema.json
CHANGED
|
@@ -2332,6 +2332,9 @@
|
|
|
2332
2332
|
"effecttsgo/effect-succeed-with-void": {
|
|
2333
2333
|
"$ref": "#/definitions/RuleNoConfig"
|
|
2334
2334
|
},
|
|
2335
|
+
"effecttsgo/error-payload-shadows-name": {
|
|
2336
|
+
"$ref": "#/definitions/RuleNoConfig"
|
|
2337
|
+
},
|
|
2335
2338
|
"effecttsgo/experimental-api-usage": {
|
|
2336
2339
|
"$ref": "#/definitions/RuleNoConfig"
|
|
2337
2340
|
},
|
|
@@ -2479,12 +2482,18 @@
|
|
|
2479
2482
|
"effecttsgo/overridden-schema-constructor": {
|
|
2480
2483
|
"$ref": "#/definitions/RuleNoConfig"
|
|
2481
2484
|
},
|
|
2485
|
+
"effecttsgo/prefer-barrel-import": {
|
|
2486
|
+
"$ref": "#/definitions/RuleNoConfig"
|
|
2487
|
+
},
|
|
2482
2488
|
"effecttsgo/prefer-effect-array": {
|
|
2483
2489
|
"$ref": "#/definitions/RuleNoConfig"
|
|
2484
2490
|
},
|
|
2485
2491
|
"effecttsgo/prefer-effect-record": {
|
|
2486
2492
|
"$ref": "#/definitions/RuleNoConfig"
|
|
2487
2493
|
},
|
|
2494
|
+
"effecttsgo/prefer-namespace-import": {
|
|
2495
|
+
"$ref": "#/definitions/RuleNoConfig"
|
|
2496
|
+
},
|
|
2488
2497
|
"effecttsgo/prefer-schema-over-json": {
|
|
2489
2498
|
"$ref": "#/definitions/RuleNoConfig"
|
|
2490
2499
|
},
|
|
@@ -9737,7 +9746,24 @@
|
|
|
9737
9746
|
"$ref": "#/definitions/RuleNoConfig"
|
|
9738
9747
|
},
|
|
9739
9748
|
"unicorn/prefer-query-selector": {
|
|
9740
|
-
"
|
|
9749
|
+
"anyOf": [
|
|
9750
|
+
{
|
|
9751
|
+
"$ref": "#/definitions/RuleNoConfig"
|
|
9752
|
+
},
|
|
9753
|
+
{
|
|
9754
|
+
"items": [
|
|
9755
|
+
{
|
|
9756
|
+
"$ref": "#/definitions/AllowWarnDeny"
|
|
9757
|
+
},
|
|
9758
|
+
{
|
|
9759
|
+
"$ref": "#/definitions/PreferQuerySelector"
|
|
9760
|
+
}
|
|
9761
|
+
],
|
|
9762
|
+
"maxItems": 2,
|
|
9763
|
+
"minItems": 2,
|
|
9764
|
+
"type": "array"
|
|
9765
|
+
}
|
|
9766
|
+
]
|
|
9741
9767
|
},
|
|
9742
9768
|
"unicorn/prefer-reflect-apply": {
|
|
9743
9769
|
"$ref": "#/definitions/RuleNoConfig"
|
|
@@ -18263,6 +18289,18 @@
|
|
|
18263
18289
|
},
|
|
18264
18290
|
"type": "object"
|
|
18265
18291
|
},
|
|
18292
|
+
"PreferQuerySelector": {
|
|
18293
|
+
"additionalProperties": false,
|
|
18294
|
+
"properties": {
|
|
18295
|
+
"allowWithVariables": {
|
|
18296
|
+
"default": false,
|
|
18297
|
+
"description": "When set to `true`, allows using `.getElementById()` and `.getElementsByClassName()` when called with a variable or expression.\nThis avoids the need to manually compose a CSS selector string, which can be less readable.",
|
|
18298
|
+
"markdownDescription": "When set to `true`, allows using `.getElementById()` and `.getElementsByClassName()` when called with a variable or expression.\nThis avoids the need to manually compose a CSS selector string, which can be less readable.",
|
|
18299
|
+
"type": "boolean"
|
|
18300
|
+
}
|
|
18301
|
+
},
|
|
18302
|
+
"type": "object"
|
|
18303
|
+
},
|
|
18266
18304
|
"PreferReadonlyConfig": {
|
|
18267
18305
|
"additionalProperties": false,
|
|
18268
18306
|
"properties": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/tsgo",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.53.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.53.0",
|
|
45
|
+
"@effect/tsgo-win32-arm64": "0.53.0",
|
|
46
|
+
"@effect/tsgo-linux-x64": "0.53.0",
|
|
47
|
+
"@effect/tsgo-linux-arm64": "0.53.0",
|
|
48
|
+
"@effect/tsgo-linux-arm": "0.53.0",
|
|
49
|
+
"@effect/tsgo-darwin-x64": "0.53.0",
|
|
50
|
+
"@effect/tsgo-darwin-arm64": "0.53.0"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@effect/platform-node": "^4.0.2",
|
package/schema.json
CHANGED
|
@@ -2463,6 +2463,11 @@
|
|
|
2463
2463
|
"default": "suggestion",
|
|
2464
2464
|
"description": "Suggests using Effect.void instead of Effect.succeed(undefined) or Effect.succeed(void 0)"
|
|
2465
2465
|
},
|
|
2466
|
+
"errorPayloadShadowsName": {
|
|
2467
|
+
"$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
|
|
2468
|
+
"default": "suggestion",
|
|
2469
|
+
"description": "Detects error payload fields named `name` that shadow the error's own name"
|
|
2470
|
+
},
|
|
2466
2471
|
"experimentalApiUsage": {
|
|
2467
2472
|
"$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
|
|
2468
2473
|
"default": "warning",
|
|
@@ -2708,6 +2713,11 @@
|
|
|
2708
2713
|
"default": "error",
|
|
2709
2714
|
"description": "Prevents overriding constructors in Schema classes which breaks decoding behavior"
|
|
2710
2715
|
},
|
|
2716
|
+
"preferBarrelImport": {
|
|
2717
|
+
"$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
|
|
2718
|
+
"default": "off",
|
|
2719
|
+
"description": "Reports imports of individual modules from packages configured in barrelImportPackages that should be named imports from the package barrel"
|
|
2720
|
+
},
|
|
2711
2721
|
"preferEffectArray": {
|
|
2712
2722
|
"$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
|
|
2713
2723
|
"default": "off",
|
|
@@ -2718,6 +2728,11 @@
|
|
|
2718
2728
|
"default": "off",
|
|
2719
2729
|
"description": "Suggests Effect Record APIs for native Object member references, with semantic caveats"
|
|
2720
2730
|
},
|
|
2731
|
+
"preferNamespaceImport": {
|
|
2732
|
+
"$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
|
|
2733
|
+
"default": "off",
|
|
2734
|
+
"description": "Reports named imports from packages configured in namespaceImportPackages that should be namespace imports"
|
|
2735
|
+
},
|
|
2721
2736
|
"preferSchemaOverJson": {
|
|
2722
2737
|
"$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
|
|
2723
2738
|
"default": "off",
|
|
@@ -2935,7 +2950,8 @@
|
|
|
2935
2950
|
"enum": [
|
|
2936
2951
|
"default",
|
|
2937
2952
|
"package-identifier",
|
|
2938
|
-
"default-hashed"
|
|
2953
|
+
"default-hashed",
|
|
2954
|
+
"identifier"
|
|
2939
2955
|
],
|
|
2940
2956
|
"type": "string"
|
|
2941
2957
|
},
|
|
@@ -3193,13 +3209,32 @@
|
|
|
3193
3209
|
"additionalProperties": false,
|
|
3194
3210
|
"properties": {
|
|
3195
3211
|
"allowedDuplicatedPackages": {
|
|
3196
|
-
"description": "Scoped allow-list for duplicatePackage."
|
|
3212
|
+
"description": "Scoped allow-list for duplicatePackage.",
|
|
3213
|
+
"items": {
|
|
3214
|
+
"type": "string"
|
|
3215
|
+
},
|
|
3216
|
+
"type": "array"
|
|
3197
3217
|
},
|
|
3198
3218
|
"allowedExperimentalApis": {
|
|
3199
|
-
"description": "Scoped allow-list for experimentalApiUsage."
|
|
3219
|
+
"description": "Scoped allow-list for experimentalApiUsage.",
|
|
3220
|
+
"items": {
|
|
3221
|
+
"type": "string"
|
|
3222
|
+
},
|
|
3223
|
+
"type": "array"
|
|
3200
3224
|
},
|
|
3201
3225
|
"allowedUnstableApis": {
|
|
3202
|
-
"description": "Scoped allow-list for unstableApiUsage."
|
|
3226
|
+
"description": "Scoped allow-list for unstableApiUsage.",
|
|
3227
|
+
"items": {
|
|
3228
|
+
"type": "string"
|
|
3229
|
+
},
|
|
3230
|
+
"type": "array"
|
|
3231
|
+
},
|
|
3232
|
+
"barrelImportPackages": {
|
|
3233
|
+
"description": "Scoped package names that should prefer barrel named imports.",
|
|
3234
|
+
"items": {
|
|
3235
|
+
"type": "string"
|
|
3236
|
+
},
|
|
3237
|
+
"type": "array"
|
|
3203
3238
|
},
|
|
3204
3239
|
"diagnosticSeverity": {
|
|
3205
3240
|
"$ref": "#/definitions/effectLanguageServicePluginDiagnosticSeverityDefinition",
|
|
@@ -3207,10 +3242,29 @@
|
|
|
3207
3242
|
},
|
|
3208
3243
|
"effectFn": {
|
|
3209
3244
|
"description": "Scoped override for effectFn quickfix variants.",
|
|
3245
|
+
"items": {
|
|
3246
|
+
"enum": [
|
|
3247
|
+
"span",
|
|
3248
|
+
"untraced",
|
|
3249
|
+
"no-span",
|
|
3250
|
+
"inferred-span",
|
|
3251
|
+
"suggested-span"
|
|
3252
|
+
],
|
|
3253
|
+
"type": "string"
|
|
3254
|
+
},
|
|
3255
|
+
"type": "array",
|
|
3210
3256
|
"uniqueItems": true
|
|
3211
3257
|
},
|
|
3212
3258
|
"extendedKeyDetection": {
|
|
3213
|
-
"description": "Scoped override for extended deterministic key detection."
|
|
3259
|
+
"description": "Scoped override for extended deterministic key detection.",
|
|
3260
|
+
"type": "boolean"
|
|
3261
|
+
},
|
|
3262
|
+
"importAliases": {
|
|
3263
|
+
"additionalProperties": {
|
|
3264
|
+
"type": "string"
|
|
3265
|
+
},
|
|
3266
|
+
"description": "Scoped package-level import aliases keyed by package name.",
|
|
3267
|
+
"type": "object"
|
|
3214
3268
|
},
|
|
3215
3269
|
"keyPatterns": {
|
|
3216
3270
|
"description": "Scoped key pattern configuration for deterministicKeys.",
|
|
@@ -3219,9 +3273,25 @@
|
|
|
3219
3273
|
},
|
|
3220
3274
|
"type": "array"
|
|
3221
3275
|
},
|
|
3276
|
+
"namespaceImportPackages": {
|
|
3277
|
+
"description": "Scoped package names that should prefer namespace imports.",
|
|
3278
|
+
"items": {
|
|
3279
|
+
"type": "string"
|
|
3280
|
+
},
|
|
3281
|
+
"type": "array"
|
|
3282
|
+
},
|
|
3222
3283
|
"pipeableMinArgCount": {
|
|
3223
3284
|
"description": "Minimum number of contiguous pipeable transformations to trigger missedPipeableOpportunity.",
|
|
3224
|
-
"minimum": 1
|
|
3285
|
+
"minimum": 1,
|
|
3286
|
+
"type": "integer"
|
|
3287
|
+
},
|
|
3288
|
+
"topLevelNamedReexports": {
|
|
3289
|
+
"description": "Scoped override for whether named reexports are followed at package top-level.",
|
|
3290
|
+
"enum": [
|
|
3291
|
+
"ignore",
|
|
3292
|
+
"follow"
|
|
3293
|
+
],
|
|
3294
|
+
"type": "string"
|
|
3225
3295
|
}
|
|
3226
3296
|
},
|
|
3227
3297
|
"type": "object"
|