eslint-config-typed 5.17.4 → 5.18.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.
Files changed (95) hide show
  1. package/README.md +11 -10
  2. package/dist/plugins/ts-restrictions/rules/check-destructuring-completeness.d.mts.map +1 -1
  3. package/dist/plugins/ts-restrictions/rules/check-destructuring-completeness.mjs +13 -10
  4. package/dist/plugins/ts-restrictions/rules/check-destructuring-completeness.mjs.map +1 -1
  5. package/dist/plugins/ts-restrictions/rules/comparison-utils.d.mts +6 -1
  6. package/dist/plugins/ts-restrictions/rules/comparison-utils.d.mts.map +1 -1
  7. package/dist/plugins/ts-restrictions/rules/comparison-utils.mjs +10 -2
  8. package/dist/plugins/ts-restrictions/rules/comparison-utils.mjs.map +1 -1
  9. package/dist/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.d.mts +3 -2
  10. package/dist/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.d.mts.map +1 -1
  11. package/dist/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.mjs +9 -2
  12. package/dist/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.mjs.map +1 -1
  13. package/dist/plugins/ts-restrictions/rules/no-negated-comparison.d.mts +5 -3
  14. package/dist/plugins/ts-restrictions/rules/no-negated-comparison.d.mts.map +1 -1
  15. package/dist/plugins/ts-restrictions/rules/no-negated-comparison.mjs +6 -3
  16. package/dist/plugins/ts-restrictions/rules/no-negated-comparison.mjs.map +1 -1
  17. package/dist/plugins/ts-restrictions/rules/no-string-spread.d.mts.map +1 -1
  18. package/dist/plugins/ts-restrictions/rules/no-string-spread.mjs +6 -14
  19. package/dist/plugins/ts-restrictions/rules/no-string-spread.mjs.map +1 -1
  20. package/dist/plugins/ts-restrictions/rules/no-unnecessary-array-from.d.mts.map +1 -1
  21. package/dist/plugins/ts-restrictions/rules/no-unnecessary-array-from.mjs +4 -4
  22. package/dist/plugins/ts-restrictions/rules/no-unnecessary-array-from.mjs.map +1 -1
  23. package/dist/plugins/ts-restrictions/rules/no-unnecessary-coalesce-undefined.d.mts.map +1 -1
  24. package/dist/plugins/ts-restrictions/rules/no-unnecessary-coalesce-undefined.mjs +4 -3
  25. package/dist/plugins/ts-restrictions/rules/no-unnecessary-coalesce-undefined.mjs.map +1 -1
  26. package/dist/plugins/ts-restrictions/rules/prefer-curried-call.d.mts +14 -3
  27. package/dist/plugins/ts-restrictions/rules/prefer-curried-call.d.mts.map +1 -1
  28. package/dist/plugins/ts-restrictions/rules/prefer-curried-call.mjs +149 -7
  29. package/dist/plugins/ts-restrictions/rules/prefer-curried-call.mjs.map +1 -1
  30. package/dist/plugins/ts-restrictions/rules/prefer-logical-over-boolean-ternary.d.mts +5 -3
  31. package/dist/plugins/ts-restrictions/rules/prefer-logical-over-boolean-ternary.d.mts.map +1 -1
  32. package/dist/plugins/ts-restrictions/rules/prefer-logical-over-boolean-ternary.mjs +8 -4
  33. package/dist/plugins/ts-restrictions/rules/prefer-logical-over-boolean-ternary.mjs.map +1 -1
  34. package/dist/plugins/ts-restrictions/rules/prefer-non-mutating-array-method.d.mts.map +1 -1
  35. package/dist/plugins/ts-restrictions/rules/prefer-non-mutating-array-method.mjs +5 -4
  36. package/dist/plugins/ts-restrictions/rules/prefer-non-mutating-array-method.mjs.map +1 -1
  37. package/dist/plugins/ts-restrictions/rules/prefer-nullish-coalescing-when-safe.d.mts.map +1 -1
  38. package/dist/plugins/ts-restrictions/rules/prefer-nullish-coalescing-when-safe.mjs +21 -12
  39. package/dist/plugins/ts-restrictions/rules/prefer-nullish-coalescing-when-safe.mjs.map +1 -1
  40. package/dist/plugins/ts-restrictions/rules/prefer-optional-chain-over-ternary.d.mts +2 -1
  41. package/dist/plugins/ts-restrictions/rules/prefer-optional-chain-over-ternary.d.mts.map +1 -1
  42. package/dist/plugins/ts-restrictions/rules/prefer-optional-chain-over-ternary.mjs +10 -6
  43. package/dist/plugins/ts-restrictions/rules/prefer-optional-chain-over-ternary.mjs.map +1 -1
  44. package/dist/plugins/ts-restrictions/rules/rules.d.mts +1 -1
  45. package/dist/plugins/ts-restrictions/rules/type-layer-utils.d.mts +15 -0
  46. package/dist/plugins/ts-restrictions/rules/type-layer-utils.d.mts.map +1 -0
  47. package/dist/plugins/ts-restrictions/rules/type-layer-utils.mjs +21 -0
  48. package/dist/plugins/ts-restrictions/rules/type-layer-utils.mjs.map +1 -0
  49. package/dist/plugins/vitest-coding-style/rules/prefer-assert-strict-equal-for-primitives.d.mts +24 -0
  50. package/dist/plugins/vitest-coding-style/rules/prefer-assert-strict-equal-for-primitives.d.mts.map +1 -0
  51. package/dist/plugins/vitest-coding-style/rules/prefer-assert-strict-equal-for-primitives.mjs +138 -0
  52. package/dist/plugins/vitest-coding-style/rules/prefer-assert-strict-equal-for-primitives.mjs.map +1 -0
  53. package/dist/plugins/vitest-coding-style/rules/rules.d.mts +1 -0
  54. package/dist/plugins/vitest-coding-style/rules/rules.d.mts.map +1 -1
  55. package/dist/plugins/vitest-coding-style/rules/rules.mjs +2 -0
  56. package/dist/plugins/vitest-coding-style/rules/rules.mjs.map +1 -1
  57. package/dist/rules/eslint-vitest-coding-style-rules.d.mts +1 -0
  58. package/dist/rules/eslint-vitest-coding-style-rules.d.mts.map +1 -1
  59. package/dist/rules/eslint-vitest-coding-style-rules.mjs +1 -0
  60. package/dist/rules/eslint-vitest-coding-style-rules.mjs.map +1 -1
  61. package/dist/types/rules/eslint-ts-restrictions-rules.d.mts +6 -5
  62. package/dist/types/rules/eslint-ts-restrictions-rules.d.mts.map +1 -1
  63. package/dist/types/rules/eslint-vitest-coding-style-rules.d.mts +16 -0
  64. package/dist/types/rules/eslint-vitest-coding-style-rules.d.mts.map +1 -1
  65. package/package.json +3 -3
  66. package/src/plugins/ts-restrictions/rules/check-destructuring-completeness.mts +22 -16
  67. package/src/plugins/ts-restrictions/rules/check-destructuring-completeness.test.mts +22 -2
  68. package/src/plugins/ts-restrictions/rules/comparison-utils.mts +10 -4
  69. package/src/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.mts +12 -9
  70. package/src/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.test.mts +26 -0
  71. package/src/plugins/ts-restrictions/rules/no-negated-comparison.mts +9 -12
  72. package/src/plugins/ts-restrictions/rules/no-negated-comparison.test.mts +43 -0
  73. package/src/plugins/ts-restrictions/rules/no-string-spread.mts +6 -32
  74. package/src/plugins/ts-restrictions/rules/no-unnecessary-array-from.mts +8 -15
  75. package/src/plugins/ts-restrictions/rules/no-unnecessary-array-from.test.mts +19 -0
  76. package/src/plugins/ts-restrictions/rules/no-unnecessary-coalesce-undefined.mts +7 -9
  77. package/src/plugins/ts-restrictions/rules/no-unnecessary-coalesce-undefined.test.mts +7 -0
  78. package/src/plugins/ts-restrictions/rules/prefer-curried-call.mts +193 -12
  79. package/src/plugins/ts-restrictions/rules/prefer-curried-call.test.mts +117 -0
  80. package/src/plugins/ts-restrictions/rules/prefer-logical-over-boolean-ternary.mts +11 -14
  81. package/src/plugins/ts-restrictions/rules/prefer-logical-over-boolean-ternary.test.mts +41 -0
  82. package/src/plugins/ts-restrictions/rules/prefer-non-mutating-array-method.mts +9 -15
  83. package/src/plugins/ts-restrictions/rules/prefer-non-mutating-array-method.test.mts +19 -0
  84. package/src/plugins/ts-restrictions/rules/prefer-nullish-coalescing-when-safe.mts +27 -21
  85. package/src/plugins/ts-restrictions/rules/prefer-nullish-coalescing-when-safe.test.mts +51 -0
  86. package/src/plugins/ts-restrictions/rules/prefer-optional-chain-over-ternary.mts +13 -14
  87. package/src/plugins/ts-restrictions/rules/prefer-optional-chain-over-ternary.test.mts +29 -0
  88. package/src/plugins/ts-restrictions/rules/type-layer-utils.mts +36 -0
  89. package/src/plugins/vitest-coding-style/rules/assert-vs-expect-strict-equality.test.mts +3 -1
  90. package/src/plugins/vitest-coding-style/rules/prefer-assert-strict-equal-for-primitives.mts +194 -0
  91. package/src/plugins/vitest-coding-style/rules/prefer-assert-strict-equal-for-primitives.test.mts +426 -0
  92. package/src/plugins/vitest-coding-style/rules/rules.mts +3 -0
  93. package/src/rules/eslint-vitest-coding-style-rules.mts +1 -0
  94. package/src/types/rules/eslint-ts-restrictions-rules.mts +6 -5
  95. package/src/types/rules/eslint-vitest-coding-style-rules.mts +17 -0
package/README.md CHANGED
@@ -642,16 +642,17 @@ This type definition provides overridden `Chai.Assert` type:
642
642
  - Convert arg types to be readonly
643
643
  - Replace `Object` with `object`
644
644
 
645
- | Included rules | Description |
646
- | :--------------------------------------------------- | :-------------------------------------------------------------------------------------------- |
647
- | `no-expect-to-strict-equal` | Forbid `expect(x).toStrictEqual(y)`; prefer `assert.deepStrictEqual(x, y)` |
648
- | `prefer-assert-deep-strict-equal-over-deep-equal` | Replace `assert.deepEqual(x)` with `assert.deepStrictEqual(x)` |
649
- | `prefer-assert-is-true-over-assert` | Canonicalize `assert(x)` / `assert.isOk(x)` / `assert.ok(x)` to `assert.isTrue(x)` |
650
- | `prefer-assert-is-false-over-assert-not-ok` | Canonicalize `assert.isNotOk(x)` / `assert.notOk(x)` to `assert.isFalse(x)` |
651
- | `prefer-assert-is-false-over-negated-assert-is-true` | Rewrite `assert.isTrue(!x)` to `assert.isFalse(x)` |
652
- | `prefer-assert-is-true-over-negated-assert-is-false` | Rewrite `assert.isFalse(!x)` to `assert.isTrue(x)` |
653
- | `prefer-assert-is-true-over-expect-true` | Rewrite `expect(x).toBe(true)` to `assert.isTrue(x)` (only when `x` is boolean; type-aware) |
654
- | `prefer-assert-is-false-over-expect-false` | Rewrite `expect(x).toBe(false)` to `assert.isFalse(x)` (only when `x` is boolean; type-aware) |
645
+ | Included rules | Description |
646
+ | :--------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- |
647
+ | `no-expect-to-strict-equal` | Forbid `expect(x).toStrictEqual(y)`; prefer `assert.deepStrictEqual(x, y)` |
648
+ | `prefer-assert-deep-strict-equal-over-deep-equal` | Replace `assert.deepEqual(x)` with `assert.deepStrictEqual(x)` |
649
+ | `prefer-assert-strict-equal-for-primitives` | Replace `assert.deepStrictEqual(x, y)` with `assert.strictEqual(x, y)` when both are primitives (type-aware; only a suggestion when both may be `NaN` or a zero) |
650
+ | `prefer-assert-is-true-over-assert` | Canonicalize `assert(x)` / `assert.isOk(x)` / `assert.ok(x)` to `assert.isTrue(x)` |
651
+ | `prefer-assert-is-false-over-assert-not-ok` | Canonicalize `assert.isNotOk(x)` / `assert.notOk(x)` to `assert.isFalse(x)` |
652
+ | `prefer-assert-is-false-over-negated-assert-is-true` | Rewrite `assert.isTrue(!x)` to `assert.isFalse(x)` |
653
+ | `prefer-assert-is-true-over-negated-assert-is-false` | Rewrite `assert.isFalse(!x)` to `assert.isTrue(x)` |
654
+ | `prefer-assert-is-true-over-expect-true` | Rewrite `expect(x).toBe(true)` to `assert.isTrue(x)` (only when `x` is boolean; type-aware) |
655
+ | `prefer-assert-is-false-over-expect-false` | Rewrite `expect(x).toBe(false)` to `assert.isFalse(x)` (only when `x` is boolean; type-aware) |
655
656
 
656
657
  Why `assert.deepStrictEqual` rather than `expect(x).toStrictEqual(y)`, given
657
658
  that only the latter compares prototypes: it is the only one of the two that
@@ -1 +1 @@
1
- {"version":3,"file":"check-destructuring-completeness.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/check-destructuring-completeness.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAMlC,KAAK,OAAO,GAAG,SAAS;IACtB,QAAQ,CAAC;QACP,8BAA8B,CAAC,EAAE,OAAO,CAAC;QACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC,CAAC;CACJ,CAAC;AAEF,KAAK,UAAU,GAAG,yBAAyB,CAAC;AAI5C;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,UAAU,CAC9D,UAAU,EACV,OAAO,CAqOC,CAAC"}
1
+ {"version":3,"file":"check-destructuring-completeness.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/check-destructuring-completeness.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAMlC,KAAK,OAAO,GAAG,SAAS;IACtB,QAAQ,CAAC;QACP,8BAA8B,CAAC,EAAE,OAAO,CAAC;QACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC,CAAC;CACJ,CAAC;AAEF,KAAK,UAAU,GAAG,yBAAyB,CAAC;AAI5C;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,UAAU,CAC9D,UAAU,EACV,OAAO,CA2OC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { AST_NODE_TYPES, } from '@typescript-eslint/utils';
2
- import { skipTypeWrappers } from 'eslint-rule-forge';
2
+ import { skipTypeWrappers, typeWrapperLayers } from 'eslint-rule-forge';
3
3
  import { Arr } from 'ts-data-forge';
4
4
  const DEFAULT_DIRECTIVE_KEYWORD = '@check-destructuring-completeness';
5
5
 
@@ -105,16 +105,21 @@ export const checkDestructuringCompleteness = {
105
105
  return;
106
106
  }
107
107
 
108
- const tsNode = esTreeNodeToTSNodeMap.get(tsSourceNode);
109
108
 
110
- if (tsNode === undefined) {
111
- return;
112
- }
113
109
 
110
+ const layerProps = typeWrapperLayers(tsSourceNode).map((layer) => {
111
+
112
+ const tsNode = esTreeNodeToTSNodeMap.get(layer);
113
+
114
+ return tsNode === undefined
115
+ ? []
116
+ : getObjectTypeProperties(typeChecker.getNonNullableType(typeChecker.getTypeAtLocation(tsNode)));
117
+ });
114
118
 
115
119
 
116
- const type = typeChecker.getNonNullableType(typeChecker.getTypeAtLocation(tsNode));
117
- const objectProps = getObjectTypeProperties(type);
120
+
121
+
122
+ const objectProps = (layerProps[0] ?? []).filter((prop) => layerProps.every((props) => props.includes(prop)));
118
123
  const collected = collectDestructuredPropNames(objectPattern.properties);
119
124
 
120
125
 
@@ -146,9 +151,7 @@ export const checkDestructuringCompleteness = {
146
151
  if (!shouldCheck) {
147
152
  return;
148
153
  }
149
-
150
-
151
- checkObjectPatternCompleteness(node.id, skipTypeWrappers(node.init));
154
+ checkObjectPatternCompleteness(node.id, node.init);
152
155
  },
153
156
  ArrowFunctionExpression: (node) => {
154
157
  if (!alwaysCheckReactComponentProps) {
@@ -1 +1 @@
1
- {"version":3,"file":"check-destructuring-completeness.mjs","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/check-destructuring-completeness.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check-destructuring-completeness.mjs","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/check-destructuring-completeness.mts"],"names":[],"mappings":"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"}
@@ -26,8 +26,13 @@ export declare const isComparison: (node: DeepReadonly<TSESTree.Node>) => node i
26
26
  * sides are strings (compared as strings), or both are numeric values that are
27
27
  * never `NaN` — number literals, `bigint`, booleans, and number brands that
28
28
  * declare `NaNValue: false` (`ValidNumber`, `Int`, `FiniteNumber`, …).
29
+ *
30
+ * `getLayerTypes` gives an operand's type at each of its type-wrapper layers,
31
+ * and every one of them has to say so: `(v as number) < 1` may be `NaN` even
32
+ * when `v` is a `ValidNumber`, and `(n as ValidNumber) < 1` still may when `n`
33
+ * is a `number`.
29
34
  */
30
- export declare const isExactlyInvertible: (node: ComparisonExpression, getType: (target: DeepReadonly<TSESTree.Node>) => ts.Type, checker: ts.TypeChecker) => boolean;
35
+ export declare const isExactlyInvertible: (node: ComparisonExpression, getLayerTypes: (target: DeepReadonly<TSESTree.Node>) => readonly ts.Type[], checker: ts.TypeChecker) => boolean;
31
36
  /**
32
37
  * The source of `node` with its operator inverted, and everything else —
33
38
  * operands, comments, line breaks — as written.
@@ -1 +1 @@
1
- {"version":3,"file":"comparison-utils.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/comparison-utils.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,iFAAiF;AACjF,eAAO,MAAM,4BAA4B;aACvC,KAAK,EAAE,KAAK;aACZ,KAAK,EAAE,KAAK;aACZ,IAAI,EAAE,IAAI;aACV,IAAI,EAAE,IAAI;aACV,GAAG,EAAE,IAAI;aACT,IAAI,EAAE,GAAG;aACT,GAAG,EAAE,IAAI;aACT,IAAI,EAAE,GAAG;CACD,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,4BAA4B,CAAC;AAE3E,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GACxE,QAAQ,CAAC;IAAE,QAAQ,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAAC;AAE7C,eAAO,MAAM,YAAY,SACjB,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAChC,IAAI,IAAI,oBAE0C,CAAC;AAEtD;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,SACxB,oBAAoB,WACjB,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,WAEhD,EAAE,CAAC,WAAW,KACtB,OAaF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,SAC3B,oBAAoB,cACd,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,KAC5C,MAoBF,CAAC"}
1
+ {"version":3,"file":"comparison-utils.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/comparison-utils.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,iFAAiF;AACjF,eAAO,MAAM,4BAA4B;aACvC,KAAK,EAAE,KAAK;aACZ,KAAK,EAAE,KAAK;aACZ,IAAI,EAAE,IAAI;aACV,IAAI,EAAE,IAAI;aACV,GAAG,EAAE,IAAI;aACT,IAAI,EAAE,GAAG;aACT,GAAG,EAAE,IAAI;aACT,IAAI,EAAE,GAAG;CACD,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,4BAA4B,CAAC;AAE3E,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GACxE,QAAQ,CAAC;IAAE,QAAQ,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAAC;AAE7C,eAAO,MAAM,YAAY,SACjB,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAChC,IAAI,IAAI,oBAE0C,CAAC;AAEtD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB,SACxB,oBAAoB,iBACX,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC,IAAI,EAAE,WAEjE,EAAE,CAAC,WAAW,KACtB,OAcF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,SAC3B,oBAAoB,cACd,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,KAC5C,MAoBF,CAAC"}
@@ -24,13 +24,21 @@ export const isComparison = (node) => node.type === AST_NODE_TYPES.BinaryExpress
24
24
 
25
25
 
26
26
 
27
- export const isExactlyInvertible = (node, getType,
27
+
28
+
29
+
30
+
31
+
32
+ export const isExactlyInvertible = (node, getLayerTypes,
28
33
 
29
34
  checker) => {
30
35
  if (!RELATIONAL_OPERATORS.has(node.operator)) {
31
36
  return true;
32
37
  }
33
- const sides = [getType(node.left), getType(node.right)].flatMap(constituentsOf);
38
+ const sides = [
39
+ ...getLayerTypes(node.left),
40
+ ...getLayerTypes(node.right),
41
+ ].flatMap(constituentsOf);
34
42
  return (sides.every((type) => (type.flags & ts.TypeFlags.StringLike) !== 0) ||
35
43
  sides.every((type) => isNeverNaN(type, checker)));
36
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"comparison-utils.mjs","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/comparison-utils.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comparison-utils.mjs","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/comparison-utils.mts"],"names":[],"mappings":"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"}
@@ -24,8 +24,9 @@ type MessageIds = 'booleanOperands' | 'nonBooleanLeft';
24
24
  * An operand is "in JSX" when its value can come out of the braces: the
25
25
  * expression in `{…}` itself, a branch of a ternary there, or an operand of a
26
26
  * longer `&&` / `||` / `??` chain. The test of a ternary is not. An operand is
27
- * judged by the type of its value, through any `as`, `satisfies` or `!`: a cast
28
- * to `boolean` does not make a number one. This replaces
27
+ * a boolean only when it is one at every `as`, `satisfies` or `!` around it: a
28
+ * cast to `boolean` does not make a number one, and a cast widening a boolean
29
+ * to `boolean | number` is the author saying it may be a number. This replaces
29
30
  * `react/jsx-no-leaked-render`, which reported every `&&` alike, whatever its
30
31
  * operands were.
31
32
  */
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-boolean-logical-operands.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAMlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,UAAU,CACzD,UAAU,EACV,OAAO,CAwGC,CAAC"}
1
+ {"version":3,"file":"jsx-boolean-logical-operands.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAOlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,UAAU,CACzD,UAAU,EACV,OAAO,CAyGC,CAAC"}
@@ -1,7 +1,9 @@
1
1
  import { AST_NODE_TYPES, ESLintUtils, } from '@typescript-eslint/utils';
2
- import { isTypeWrapper, skipTypeWrappers } from 'eslint-rule-forge';
2
+ import { isTypeWrapper } from 'eslint-rule-forge';
3
3
  import * as ts from 'typescript';
4
4
  import { jsxValuePositionOf } from './jsx-utils.mjs';
5
+ import { createGetLayerTypes } from './type-layer-utils.mjs';
6
+
5
7
 
6
8
 
7
9
 
@@ -47,7 +49,12 @@ export const jsxBooleanLogicalOperands = {
47
49
  const sourceCode = context.sourceCode;
48
50
  const services = ESLintUtils.getParserServices(context);
49
51
  const checker = services.program.getTypeChecker();
50
- const isBoolean = (node) => typeIsBoolean(checker.getTypeAtLocation(services.esTreeNodeToTSNodeMap.get(asNode(skipTypeWrappers(node)))), checker);
52
+ const getLayerTypes = createGetLayerTypes(services);
53
+
54
+
55
+
56
+
57
+ const isBoolean = (node) => getLayerTypes(node).every((type) => typeIsBoolean(type, checker));
51
58
  const textOf = (node) => sourceCode.getText(asNode(node));
52
59
  const ternaryOf = (node, position) => {
53
60
 
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-boolean-logical-operands.mjs","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsx-boolean-logical-operands.mjs","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.mts"],"names":[],"mappings":"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"}
@@ -11,9 +11,11 @@ type MessageIds = 'negatedComparison' | 'negatedComparisonMaybeNaN' | 'invertCom
11
11
  * with `NaN` is `false` — `!(x >= 0)` holds for `NaN` and `x < 0` does not —
12
12
  * and a check written that way may be relying on it.
13
13
  *
14
- * The comparison is found, and its operands' types are read, through any
15
- * `as`, `satisfies` or `!`: `!((a === b) satisfies boolean)` is `a !== b`, and
16
- * a `number` cast to a brand that excludes `NaN` may still be one.
14
+ * The comparison is found through any `as`, `satisfies` or `!`:
15
+ * `!((a === b) satisfies boolean)` is `a !== b`. An operand's type has to
16
+ * exclude `NaN` at every wrapper layer: a `number` cast to a brand that
17
+ * excludes it may still be one, and a cast widening such a brand to `number`
18
+ * is the author saying it may be.
17
19
  *
18
20
  * `!!(a === b)` is a conversion to boolean, not a negation, and is left alone.
19
21
  * A comment the fix would drop leaves the report without a fix.
@@ -1 +1 @@
1
- {"version":3,"file":"no-negated-comparison.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/no-negated-comparison.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAWlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GACb,mBAAmB,GAAG,2BAA2B,GAAG,kBAAkB,CAAC;AAEzE;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAyI/D,CAAC"}
1
+ {"version":3,"file":"no-negated-comparison.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/no-negated-comparison.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAWlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GACb,mBAAmB,GAAG,2BAA2B,GAAG,kBAAkB,CAAC;AAEzE;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAoI/D,CAAC"}
@@ -1,6 +1,9 @@
1
1
  import { AST_NODE_TYPES, ESLintUtils, } from '@typescript-eslint/utils';
2
- import { isTypeWrapper, skipTypeWrappers } from 'eslint-rule-forge';
2
+ import { skipTypeWrappers } from 'eslint-rule-forge';
3
3
  import { invertedComparisonText, isComparison, isExactlyInvertible, } from './comparison-utils.mjs';
4
+ import { createGetLayerTypes } from './type-layer-utils.mjs';
5
+
6
+
4
7
 
5
8
 
6
9
 
@@ -37,7 +40,7 @@ export const noNegatedComparison = {
37
40
  const sourceCode = context.sourceCode;
38
41
  const services = ESLintUtils.getParserServices(context);
39
42
  const checker = services.program.getTypeChecker();
40
- const getType = (node) => checker.getTypeAtLocation(services.esTreeNodeToTSNodeMap.get(asNode(isTypeWrapper(node) ? skipTypeWrappers(node) : node)));
43
+ const getLayerTypes = createGetLayerTypes(services);
41
44
 
42
45
  const hasCommentOutside = (node, comparison) => sourceCode
43
46
  .getCommentsInside(asNode(node))
@@ -67,7 +70,7 @@ export const noNegatedComparison = {
67
70
  const fix = hasCommentOutside(node, comparison)
68
71
  ? undefined
69
72
  : (fixer) => fixer.replaceText(asNode(node), replacement);
70
- if (isExactlyInvertible(comparison, getType, checker)) {
73
+ if (isExactlyInvertible(comparison, getLayerTypes, checker)) {
71
74
  context.report({
72
75
  node: asNode(node),
73
76
  messageId: 'negatedComparison',
@@ -1 +1 @@
1
- {"version":3,"file":"no-negated-comparison.mjs","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/no-negated-comparison.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-negated-comparison.mjs","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/no-negated-comparison.mts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-string-spread.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/no-string-spread.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAKlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,gBAAgB,CAAC;AAanC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAgF1D,CAAC"}
1
+ {"version":3,"file":"no-string-spread.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/no-string-spread.mts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAItE,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,gBAAgB,CAAC;AAanC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CA2E1D,CAAC"}
@@ -1,6 +1,6 @@
1
- import { ESLintUtils, } from '@typescript-eslint/utils';
2
- import { isTypeWrapper } from 'eslint-rule-forge';
1
+ import { ESLintUtils } from '@typescript-eslint/utils';
3
2
  import * as ts from 'typescript';
3
+ import { createGetLayerTypes } from './type-layer-utils.mjs';
4
4
 
5
5
 
6
6
 
@@ -83,14 +83,16 @@ export const noStringSpread = {
83
83
  }
84
84
  return (type.flags & ts.TypeFlags.StringLike) !== 0;
85
85
  };
86
- const isStringLikeTypedNode = (node) => isStringLikeType(checker.getTypeAtLocation(parserServices.esTreeNodeToTSNodeMap.get(asNode(node))));
86
+ const getLayerTypes = createGetLayerTypes(parserServices);
87
87
  return {
88
88
 
89
89
 
90
90
 
91
91
 
92
92
  SpreadElement: (node) => {
93
- if (!someLayerIs(node.argument, isStringLikeTypedNode)) {
93
+
94
+
95
+ if (!getLayerTypes(node.argument).some(isStringLikeType)) {
94
96
  return;
95
97
  }
96
98
  context.report({
@@ -102,14 +104,4 @@ export const noStringSpread = {
102
104
  },
103
105
  defaultOptions: [],
104
106
  };
105
-
106
-
107
-
108
-
109
-
110
- const someLayerIs = (node, predicate) => predicate(node) ||
111
- (isTypeWrapper(node) && someLayerIs(node.expression, predicate));
112
- const asNode = (node) =>
113
-
114
- node;
115
107
  //# sourceMappingURL=no-string-spread.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"no-string-spread.mjs","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/no-string-spread.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-string-spread.mjs","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/no-string-spread.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAM7D;;;;GAIG;AACH,MAAM,mBAAmB,GACvB,EAAE,CAAC,SAAS,CAAC,aAAa;IAC1B,EAAE,CAAC,SAAS,CAAC,aAAa;IAC1B,EAAE,CAAC,SAAS,CAAC,WAAW;IACxB,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,MAAM,cAAc,GAA6C;IACtE,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,6JAA6J;SAChK;QACD,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,cAAc,EACZ,uRAAuR;SAC1R;KACF;IAED,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;QAClB,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAE9D,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAExD;;;;;;;;;;;;;;WAcG;QACH,8EAA8E;QAC9E,MAAM,gBAAgB,GAAG,CAAC,IAAa,EAAW,EAAE;YAClD,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnE,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC3C,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;gBAEzD,OAAO,UAAU,KAAK,SAAS,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAClE,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAE1D,OAAO;YACL,qEAAqE;YACrE,oEAAoE;YACpE,sEAAsE;YACtE,+DAA+D;YAC/D,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,yDAAyD;gBACzD,wCAAwC;gBACxC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACzD,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,gBAAgB;iBAC5B,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;IACD,cAAc,EAAE,EAAE;CACV,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-unnecessary-array-from.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/no-unnecessary-array-from.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AASlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,sBAAsB,CAAC;AA4DzC,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CA0FhE,CAAC"}
1
+ {"version":3,"file":"no-unnecessary-array-from.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/no-unnecessary-array-from.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAUlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,sBAAsB,CAAC;AA4DzC,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAkFhE,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { AST_NODE_TYPES, ESLintUtils, } from '@typescript-eslint/utils';
2
2
  import { skipTypeWrappers } from 'eslint-rule-forge';
3
3
  import { createIsArrayOrTupleType, matchArrayFromCall, toMemberObjectText, } from './array-type-utils.mjs';
4
+ import { createGetLayerTypes } from './type-layer-utils.mjs';
4
5
 
5
6
 
6
7
 
@@ -74,6 +75,7 @@ export const noUnnecessaryArrayFrom = {
74
75
  const parserServices = ESLintUtils.getParserServices(context);
75
76
  const checker = parserServices.program.getTypeChecker();
76
77
  const isArrayOrTupleType = createIsArrayOrTupleType(checker);
78
+ const getLayerTypes = createGetLayerTypes(parserServices);
77
79
  return {
78
80
  CallExpression: (node) => {
79
81
 
@@ -96,14 +98,12 @@ export const noUnnecessaryArrayFrom = {
96
98
 
97
99
 
98
100
 
99
- const argType = checker.getTypeAtLocation(parserServices.esTreeNodeToTSNodeMap.get(asNode(skipTypeWrappers(arg))));
100
- if (!isArrayOrTupleType(argType)) {
101
+ if (!getLayerTypes(arg).every(isArrayOrTupleType)) {
101
102
  return;
102
103
  }
103
104
 
104
105
 
105
- const innerType = checker.getTypeAtLocation(parserServices.esTreeNodeToTSNodeMap.get(inner));
106
- if (!isArrayOrTupleType(innerType)) {
106
+ if (!getLayerTypes(callee.object).every(isArrayOrTupleType)) {
107
107
  return;
108
108
  }
109
109
  context.report({
@@ -1 +1 @@
1
- {"version":3,"file":"no-unnecessary-array-from.mjs","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/no-unnecessary-array-from.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-unnecessary-array-from.mjs","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/no-unnecessary-array-from.mts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-unnecessary-coalesce-undefined.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/no-unnecessary-coalesce-undefined.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAKlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,8BAA8B,CAAC;AAsBjD;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,UAAU,CAC9D,UAAU,EACV,OAAO,CAwIC,CAAC"}
1
+ {"version":3,"file":"no-unnecessary-coalesce-undefined.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/no-unnecessary-coalesce-undefined.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAMlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,8BAA8B,CAAC;AAsBjD;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,UAAU,CAC9D,UAAU,EACV,OAAO,CAqIC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { AST_NODE_TYPES, ESLintUtils, } from '@typescript-eslint/utils';
2
2
  import { skipTypeWrappers } from 'eslint-rule-forge';
3
3
  import * as ts from 'typescript';
4
+ import { createGetLayerTypes } from './type-layer-utils.mjs';
4
5
 
5
6
 
6
7
 
@@ -48,6 +49,7 @@ export const noUnnecessaryCoalesceUndefined = {
48
49
  return {};
49
50
  }
50
51
  const checker = parserServices.program.getTypeChecker();
52
+ const getLayerTypes = createGetLayerTypes(parserServices);
51
53
 
52
54
 
53
55
 
@@ -91,12 +93,11 @@ export const noUnnecessaryCoalesceUndefined = {
91
93
  return;
92
94
  }
93
95
 
94
- const leftTsNode = parserServices.esTreeNodeToTSNodeMap.get(asNode(skipTypeWrappers(node.left)));
95
- const leftType = checker.getTypeAtLocation(leftTsNode);
96
96
 
97
97
 
98
98
 
99
- if (typeIncludesNull(leftType)) {
99
+
100
+ if (getLayerTypes(node.left).some(typeIncludesNull)) {
100
101
  return;
101
102
  }
102
103
  context.report({
@@ -1 +1 @@
1
- {"version":3,"file":"no-unnecessary-coalesce-undefined.mjs","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/no-unnecessary-coalesce-undefined.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-unnecessary-coalesce-undefined.mjs","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/no-unnecessary-coalesce-undefined.mts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { type TSESLint } from '@typescript-eslint/utils';
2
2
  type Options = readonly [];
3
- type MessageIds = 'useFunctionDirectly' | 'useCurriedForm';
3
+ type MessageIds = 'useFunctionDirectly' | 'useCurriedForm' | 'mayNeedGlobalReceiver' | 'replaceWithFunction';
4
4
  /**
5
5
  * Replaces a redundant arrow wrapper around a function call with a point-free
6
6
  * form, using the callee's curried version when one exists:
@@ -17,8 +17,19 @@ type MessageIds = 'useFunctionDirectly' | 'useCurriedForm';
17
17
  * The arrow's single parameter must appear exactly once, as the first argument
18
18
  * of the call, so dropping the wrapper is behavior-preserving.
19
19
  *
20
- * The callee is judged through type wrappers, by the type of its value (a cast
21
- * cannot lend it a curried signature), and the fix keeps the wrappers,
20
+ * A global the host provides (`requestAnimationFrame`, `setTimeout`, `fetch`
21
+ * in the default libraries) may have to be called on `globalThis` — passed as
22
+ * an object's property, it throws `Illegal invocation` — so `(a) => f(a)` is
23
+ * left alone for one. ECMAScript's own global functions (`parseFloat`,
24
+ * `String`, `Boolean`, ...) do not read `this` and are fixed as usual. Any
25
+ * other global ambient declaration (a `.d.ts` outside the default libraries,
26
+ * `declare global`) cannot be judged, so it is reported with a suggestion
27
+ * rather than fixed.
28
+ *
29
+ * The callee is found through type wrappers and judged by its type at every
30
+ * layer: a cast cannot lend it a curried signature, and one widening it to a
31
+ * type that takes more arguments is the author saying it may read them. The
32
+ * fix keeps the wrappers,
22
33
  * parenthesizing a callee that needs it: `(c ? g : h)(a, 1)` → `(c ? g : h)(1)`.
23
34
  */
24
35
  export declare const preferCurriedCall: TSESLint.RuleModule<MessageIds, Options>;
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-curried-call.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/prefer-curried-call.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAMlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,qBAAqB,GAAG,gBAAgB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAgN7D,CAAC"}
1
+ {"version":3,"file":"prefer-curried-call.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/prefer-curried-call.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAOlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GACX,qBAAqB,GACrB,gBAAgB,GAChB,uBAAuB,GACvB,qBAAqB,CAAC;AAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAgS7D,CAAC"}