eslint-plugin-ts-data-forge 0.8.2 → 0.8.4

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 (135) hide show
  1. package/dist/index.d.mts +1 -1
  2. package/dist/index.d.mts.map +1 -1
  3. package/dist/plugin.d.mts +1 -1
  4. package/dist/plugin.d.mts.map +1 -1
  5. package/dist/plugin.mjs +1 -0
  6. package/dist/plugin.mjs.map +1 -1
  7. package/dist/rule-types.d.mts +3 -3
  8. package/dist/rule-types.d.mts.map +1 -1
  9. package/dist/rules/ast-utils.d.mts +59 -3
  10. package/dist/rules/ast-utils.d.mts.map +1 -1
  11. package/dist/rules/ast-utils.mjs +119 -8
  12. package/dist/rules/ast-utils.mjs.map +1 -1
  13. package/dist/rules/import-utils.d.mts +1 -1
  14. package/dist/rules/import-utils.d.mts.map +1 -1
  15. package/dist/rules/import-utils.mjs +22 -11
  16. package/dist/rules/import-utils.mjs.map +1 -1
  17. package/dist/rules/no-side-effect-import.d.mts +1 -1
  18. package/dist/rules/no-side-effect-import.d.mts.map +1 -1
  19. package/dist/rules/no-unnecessary-type-guard.d.mts.map +1 -1
  20. package/dist/rules/no-unnecessary-type-guard.mjs +125 -79
  21. package/dist/rules/no-unnecessary-type-guard.mjs.map +1 -1
  22. package/dist/rules/prefer-arr-is-array.mjs +11 -4
  23. package/dist/rules/prefer-arr-is-array.mjs.map +1 -1
  24. package/dist/rules/prefer-arr-is-bounded-length-array.d.mts +1 -1
  25. package/dist/rules/prefer-arr-is-bounded-length-array.d.mts.map +1 -1
  26. package/dist/rules/prefer-arr-is-bounded-length-array.mjs +5 -19
  27. package/dist/rules/prefer-arr-is-bounded-length-array.mjs.map +1 -1
  28. package/dist/rules/prefer-arr-is-fixed-length-array.d.mts +1 -1
  29. package/dist/rules/prefer-arr-is-fixed-length-array.d.mts.map +1 -1
  30. package/dist/rules/prefer-arr-is-fixed-length-array.mjs +11 -27
  31. package/dist/rules/prefer-arr-is-fixed-length-array.mjs.map +1 -1
  32. package/dist/rules/prefer-arr-is-max-length-array.d.mts +1 -1
  33. package/dist/rules/prefer-arr-is-max-length-array.d.mts.map +1 -1
  34. package/dist/rules/prefer-arr-is-max-length-array.mjs +9 -22
  35. package/dist/rules/prefer-arr-is-max-length-array.mjs.map +1 -1
  36. package/dist/rules/prefer-arr-is-min-length-array.d.mts +1 -1
  37. package/dist/rules/prefer-arr-is-min-length-array.d.mts.map +1 -1
  38. package/dist/rules/prefer-arr-is-min-length-array.mjs +9 -22
  39. package/dist/rules/prefer-arr-is-min-length-array.mjs.map +1 -1
  40. package/dist/rules/prefer-arr-is-non-empty.d.mts.map +1 -1
  41. package/dist/rules/prefer-arr-is-non-empty.mjs +7 -22
  42. package/dist/rules/prefer-arr-is-non-empty.mjs.map +1 -1
  43. package/dist/rules/prefer-arr-scan.d.mts +6 -5
  44. package/dist/rules/prefer-arr-scan.d.mts.map +1 -1
  45. package/dist/rules/prefer-arr-scan.mjs +33 -13
  46. package/dist/rules/prefer-arr-scan.mjs.map +1 -1
  47. package/dist/rules/prefer-arr-sum.d.mts.map +1 -1
  48. package/dist/rules/prefer-arr-sum.mjs +51 -37
  49. package/dist/rules/prefer-arr-sum.mjs.map +1 -1
  50. package/dist/rules/prefer-arr-uniq.d.mts.map +1 -1
  51. package/dist/rules/prefer-arr-uniq.mjs +33 -10
  52. package/dist/rules/prefer-arr-uniq.mjs.map +1 -1
  53. package/dist/rules/prefer-as-int.d.mts.map +1 -1
  54. package/dist/rules/prefer-as-int.mjs +18 -12
  55. package/dist/rules/prefer-as-int.mjs.map +1 -1
  56. package/dist/rules/prefer-canonical-array-slicing.d.mts.map +1 -1
  57. package/dist/rules/prefer-canonical-array-slicing.mjs +29 -14
  58. package/dist/rules/prefer-canonical-array-slicing.mjs.map +1 -1
  59. package/dist/rules/prefer-canonical-length-cast.d.mts.map +1 -1
  60. package/dist/rules/prefer-canonical-length-cast.mjs +34 -13
  61. package/dist/rules/prefer-canonical-length-cast.mjs.map +1 -1
  62. package/dist/rules/prefer-canonical-length-guard.d.mts.map +1 -1
  63. package/dist/rules/prefer-canonical-length-guard.mjs +10 -4
  64. package/dist/rules/prefer-canonical-length-guard.mjs.map +1 -1
  65. package/dist/rules/prefer-comparison-over-nullish-guard.d.mts.map +1 -1
  66. package/dist/rules/prefer-comparison-over-nullish-guard.mjs +25 -3
  67. package/dist/rules/prefer-comparison-over-nullish-guard.mjs.map +1 -1
  68. package/dist/rules/prefer-is-non-null-object.mjs +28 -10
  69. package/dist/rules/prefer-is-non-null-object.mjs.map +1 -1
  70. package/dist/rules/prefer-is-record-and-has-key.d.mts.map +1 -1
  71. package/dist/rules/prefer-is-record-and-has-key.mjs +8 -3
  72. package/dist/rules/prefer-is-record-and-has-key.mjs.map +1 -1
  73. package/dist/rules/prefer-num-safe-parse-float.d.mts +3 -1
  74. package/dist/rules/prefer-num-safe-parse-float.d.mts.map +1 -1
  75. package/dist/rules/prefer-num-safe-parse-float.mjs +18 -7
  76. package/dist/rules/prefer-num-safe-parse-float.mjs.map +1 -1
  77. package/dist/rules/prefer-num-safe-parse-int.d.mts.map +1 -1
  78. package/dist/rules/prefer-num-safe-parse-int.mjs +15 -8
  79. package/dist/rules/prefer-num-safe-parse-int.mjs.map +1 -1
  80. package/dist/rules/prefer-range-for-loop.d.mts.map +1 -1
  81. package/dist/rules/prefer-range-for-loop.mjs +13 -7
  82. package/dist/rules/prefer-range-for-loop.mjs.map +1 -1
  83. package/dist/types.d.mts +2 -2
  84. package/dist/types.d.mts.map +1 -1
  85. package/package.json +7 -7
  86. package/src/index.mts +1 -1
  87. package/src/plugin.mts +5 -4
  88. package/src/plugin.test.mts +0 -13
  89. package/src/rule-types.mts +3 -3
  90. package/src/rules/ast-utils.mts +156 -13
  91. package/src/rules/import-utils.mts +35 -15
  92. package/src/rules/no-side-effect-import.mts +1 -1
  93. package/src/rules/no-unnecessary-type-guard.mts +192 -124
  94. package/src/rules/no-unnecessary-type-guard.test.mts +100 -0
  95. package/src/rules/prefer-arr-is-array.mts +11 -6
  96. package/src/rules/prefer-arr-is-array.test.mts +40 -0
  97. package/src/rules/prefer-arr-is-bounded-length-array.mts +13 -25
  98. package/src/rules/prefer-arr-is-bounded-length-array.test.mts +68 -0
  99. package/src/rules/prefer-arr-is-fixed-length-array.mts +18 -38
  100. package/src/rules/prefer-arr-is-fixed-length-array.test.mts +63 -0
  101. package/src/rules/prefer-arr-is-max-length-array.mts +15 -26
  102. package/src/rules/prefer-arr-is-max-length-array.test.mts +67 -0
  103. package/src/rules/prefer-arr-is-min-length-array.mts +15 -26
  104. package/src/rules/prefer-arr-is-min-length-array.test.mts +70 -0
  105. package/src/rules/prefer-arr-is-non-empty.mts +16 -25
  106. package/src/rules/prefer-arr-is-non-empty.test.mts +79 -0
  107. package/src/rules/prefer-arr-scan.mts +55 -19
  108. package/src/rules/prefer-arr-scan.test.mts +149 -0
  109. package/src/rules/prefer-arr-sum.mts +78 -47
  110. package/src/rules/prefer-arr-sum.test.mts +97 -0
  111. package/src/rules/prefer-arr-uniq.mts +46 -12
  112. package/src/rules/prefer-arr-uniq.test.mts +71 -0
  113. package/src/rules/prefer-as-int.mts +24 -16
  114. package/src/rules/prefer-as-int.test.mts +51 -0
  115. package/src/rules/prefer-canonical-array-slicing.mts +38 -15
  116. package/src/rules/prefer-canonical-array-slicing.test.mts +92 -0
  117. package/src/rules/prefer-canonical-length-cast.mts +45 -15
  118. package/src/rules/prefer-canonical-length-cast.test.mts +111 -0
  119. package/src/rules/prefer-canonical-length-guard.mts +13 -7
  120. package/src/rules/prefer-canonical-length-guard.test.mts +99 -0
  121. package/src/rules/prefer-comparison-over-nullish-guard.mts +33 -6
  122. package/src/rules/prefer-comparison-over-nullish-guard.test.mts +136 -0
  123. package/src/rules/prefer-is-non-null-object.mts +31 -11
  124. package/src/rules/prefer-is-non-null-object.test.mts +42 -0
  125. package/src/rules/prefer-is-record-and-has-key.mts +10 -5
  126. package/src/rules/prefer-is-record-and-has-key.test.mts +34 -0
  127. package/src/rules/prefer-num-safe-parse-float.mts +24 -11
  128. package/src/rules/prefer-num-safe-parse-float.test.mts +79 -0
  129. package/src/rules/prefer-num-safe-parse-int.mts +25 -11
  130. package/src/rules/prefer-num-safe-parse-int.test.mts +64 -0
  131. package/src/rules/prefer-obj-over-entries-round-trip.mts +1 -1
  132. package/src/rules/prefer-range-for-loop.mts +18 -8
  133. package/src/rules/prefer-range-for-loop.test.mts +75 -0
  134. package/src/rules/rules.mts +1 -1
  135. package/src/types.mts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-arr-is-min-length-array.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-arr-is-min-length-array.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAiB,MAAM,0BAA0B,CAAC;AAYxE,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,qBAAqB,CAAC;AAExC,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,UAAU,CACzD,UAAU,EACV,OAAO,CAoIC,CAAC"}
1
+ {"version":3,"file":"prefer-arr-is-min-length-array.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-arr-is-min-length-array.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AAenE,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,qBAAqB,CAAC;AAExC,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,UAAU,CACzD,UAAU,EACV,OAAO,CAsHC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { isIntegerLiteralOrConstant, isLengthAccess, isPartOfBoundedLengthCheck, } from './ast-utils.mjs';
1
+ import { asLengthAccess, isArrayOrTupleExpression, isIntegerLiteralOrConstant, isPartOfBoundedLengthCheck, skipTypeWrappers, toArgumentText, } from './ast-utils.mjs';
2
2
  import { buildImportFixes, getNamedImports, getTsDataForgeImport, } from './import-utils.mjs';
3
3
  export const preferArrIsMinLengthArray = {
4
4
  meta: {
@@ -31,48 +31,35 @@ export const preferArrIsMinLengthArray = {
31
31
  }
32
32
 
33
33
  const isLengthOnLeft = node.operator === '>=';
34
- const lengthSide = node[isLengthOnLeft ? 'left' : 'right'];
34
+
35
+ const lengthSide = asLengthAccess(node[isLengthOnLeft ? 'left' : 'right']);
35
36
  const valueSide = node[isLengthOnLeft ? 'right' : 'left'];
36
37
 
37
- if (!isLengthAccess(lengthSide)) {
38
+ if (lengthSide === undefined) {
38
39
  return;
39
40
  }
40
41
 
41
42
  if (!isIntegerLiteralOrConstant(valueSide, sourceCode)) {
42
43
  return;
43
44
  }
44
-
45
45
  const arrayExpression = lengthSide.object;
46
46
 
47
- if (services?.program !== undefined && services.program !== null) {
48
- const checker = services.program.getTypeChecker();
49
- const tsNode = services.esTreeNodeToTSNodeMap?.get(arrayExpression);
50
- if (tsNode !== undefined) {
51
- const type = checker.getTypeAtLocation(tsNode);
52
-
53
- const isArrayType = checker.isArrayType(type) || checker.isTupleType(type);
54
- if (!isArrayType) {
55
- return;
56
- }
57
- }
58
- else {
59
- return;
60
- }
61
- }
62
- else {
47
+ if (!isArrayOrTupleExpression(services, arrayExpression)) {
63
48
  return;
64
49
  }
65
50
  mut_nodesToFix.push({
66
51
  node,
67
52
  arrayExpression,
68
- lengthExpression: valueSide,
53
+
54
+
55
+ lengthExpression: skipTypeWrappers(valueSide),
69
56
  });
70
57
  },
71
58
  'Program:exit': () => {
72
59
  const namedImports = getNamedImports(tsDataForgeImport);
73
60
  const hasArrImport = namedImports.includes('Arr');
74
61
  for (const [index, { node, arrayExpression, lengthExpression },] of mut_nodesToFix.entries()) {
75
- const arrayText = sourceCode.getText(arrayExpression);
62
+ const arrayText = toArgumentText(arrayExpression, sourceCode);
76
63
  const lengthText = sourceCode.getText(lengthExpression);
77
64
  const originalText = sourceCode.getText(node);
78
65
  context.report({
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-arr-is-min-length-array.mjs","sourceRoot":"","sources":["../../src/rules/prefer-arr-is-min-length-array.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prefer-arr-is-min-length-array.mjs","sourceRoot":"","sources":["../../src/rules/prefer-arr-is-min-length-array.mts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-arr-is-non-empty.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-arr-is-non-empty.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAOlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,eAAe,CAAC;AAElC,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAuH/D,CAAC"}
1
+ {"version":3,"file":"prefer-arr-is-non-empty.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-arr-is-non-empty.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAalC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,eAAe,CAAC;AAElC,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAwG/D,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { AST_NODE_TYPES, } from '@typescript-eslint/utils';
2
+ import { asLengthAccess, isArrayOrTupleExpression, skipTypeWrappers, toArgumentText, } from './ast-utils.mjs';
2
3
  import { buildImportFixes, getNamedImports, getTsDataForgeImport, } from './import-utils.mjs';
3
4
  export const preferArrIsNonEmpty = {
4
5
  meta: {
@@ -25,34 +26,18 @@ export const preferArrIsNonEmpty = {
25
26
  return;
26
27
  }
27
28
  const isLengthOnLeft = node.operator === '>';
28
- const lengthSide = node[isLengthOnLeft ? 'left' : 'right'];
29
- const numberSide = node[isLengthOnLeft ? 'right' : 'left'];
30
29
 
31
- if (lengthSide.type !== AST_NODE_TYPES.MemberExpression ||
32
- lengthSide.property.type !== AST_NODE_TYPES.Identifier ||
33
- lengthSide.property.name !== 'length' ||
30
+ const lengthSide = asLengthAccess(node[isLengthOnLeft ? 'left' : 'right']);
31
+ const numberSide = skipTypeWrappers(node[isLengthOnLeft ? 'right' : 'left']);
32
+
33
+ if (lengthSide === undefined ||
34
34
  numberSide.type !== AST_NODE_TYPES.Literal ||
35
35
  numberSide.value !== 0) {
36
36
  return;
37
37
  }
38
38
  const arrayExpression = lengthSide.object;
39
39
 
40
- if (services?.program !== undefined && services.program !== null) {
41
- const checker = services.program.getTypeChecker();
42
- const tsNode = services.esTreeNodeToTSNodeMap?.get(arrayExpression);
43
- if (tsNode !== undefined) {
44
- const type = checker.getTypeAtLocation(tsNode);
45
-
46
- const isArrayType = checker.isArrayType(type) || checker.isTupleType(type);
47
- if (!isArrayType) {
48
- return;
49
- }
50
- }
51
- else {
52
- return;
53
- }
54
- }
55
- else {
40
+ if (!isArrayOrTupleExpression(services, arrayExpression)) {
56
41
  return;
57
42
  }
58
43
  mut_nodesToFix.push({
@@ -64,7 +49,7 @@ export const preferArrIsNonEmpty = {
64
49
  const namedImports = getNamedImports(tsDataForgeImport);
65
50
  const hasArrImport = namedImports.includes('Arr');
66
51
  for (const [index, { node, arrayExpression },] of mut_nodesToFix.entries()) {
67
- const arrayText = sourceCode.getText(arrayExpression);
52
+ const arrayText = toArgumentText(arrayExpression, sourceCode);
68
53
  const originalText = sourceCode.getText(node);
69
54
  context.report({
70
55
  node,
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-arr-is-non-empty.mjs","sourceRoot":"","sources":["../../src/rules/prefer-arr-is-non-empty.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prefer-arr-is-non-empty.mjs","sourceRoot":"","sources":["../../src/rules/prefer-arr-is-non-empty.mts"],"names":[],"mappings":"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"}
@@ -75,10 +75,10 @@ type MessageIds = 'preferArrScanPrefix' | 'preferArrScanAccumulate';
75
75
  * fourth parameter (the whole array) having no counterpart in `scan`.
76
76
  *
77
77
  * `acc.at(-1)` is typed `T | undefined` while `scan`'s accumulator is `S`, so a
78
- * `?? fallback` guarding it becomes redundant after the fix. It is left in
79
- * place rather than removed: it evaluates identically either way, and deciding
80
- * that it is dead needs to know that `S` excludes `undefined`, which is type
81
- * information this rule does not take.
78
+ * `?? fallback` guarding it becomes redundant after the fix. It is removed only
79
+ * when type information shows that neither the seed nor the appended value can
80
+ * be nullish — asked of each both as written and under any `as` / `!`, since
81
+ * `[init!]` may still hold `undefined` — and kept otherwise.
82
82
  *
83
83
  * ## What is not reported
84
84
  *
@@ -87,7 +87,8 @@ type MessageIds = 'preferArrScanPrefix' | 'preferArrScanAccumulate';
87
87
  * `scan` hands its callback the accumulated value and the element, never the
88
88
  * prefix, so such a callback is not one it can express.
89
89
  *
90
- * The array has to be spelled the same way in the `map` and in the `slice`.
90
+ * The array has to be spelled the same way in the `map` and in the `slice`,
91
+ * type wrappers aside (`(xs as readonly T[]).slice(…)` slices `xs`).
91
92
  * Deciding that two differently written expressions denote one array needs type
92
93
  * information and would still be a guess about aliasing.
93
94
  */
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-arr-scan.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-arr-scan.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAUlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,qBAAqB,GAAG,yBAAyB,CAAC;AA+CpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyFG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAoXzD,CAAC"}
1
+ {"version":3,"file":"prefer-arr-scan.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-arr-scan.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAelC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,qBAAqB,GAAG,yBAAyB,CAAC;AA+CpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0FG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAwYzD,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { AST_NODE_TYPES, } from '@typescript-eslint/utils';
2
2
  import { Arr } from 'ts-data-forge';
3
3
  import * as ts from 'typescript';
4
+ import { skipTypeWrappers, toArgumentText, typeWrapperLayers, } from './ast-utils.mjs';
4
5
  import { buildImportFixes, getNamedImports, getTsDataForgeImport, } from './import-utils.mjs';
5
6
 
6
7
  const SLICING_METHODS = new Set(['slice', 'subarray']);
@@ -92,6 +93,7 @@ const SLICING_METHODS = new Set(['slice', 'subarray']);
92
93
 
93
94
 
94
95
 
96
+
95
97
 
96
98
 
97
99
  export const preferArrScan = {
@@ -183,7 +185,11 @@ export const preferArrScan = {
183
185
 
184
186
 
185
187
 
186
- const carriesNullish = isNullish(seed) || isNullish(element);
188
+
189
+
190
+
191
+
192
+ const carriesNullish = [seed, element].some((node) => typeWrapperLayers(node).some(isNullish));
187
193
  const mut_lastReads = [];
188
194
  for (const reference of accumulator.references) {
189
195
  const identifier = reference.identifier;
@@ -218,10 +224,17 @@ export const preferArrScan = {
218
224
  .map((param) => sourceCode.getText(param))
219
225
  .join(', ');
220
226
  const elementText = applySplices(sourceCode.getText(element), element.range[0], mut_lastReads);
221
- const arrayText = sourceCode.getText(
227
+ const arrayText = toArgumentText(
228
+
229
+ call.callee.object, sourceCode);
222
230
 
223
- call.callee.object);
224
- return `Arr.scan(${arrayText}, (${parameterText}) => ${elementText}, ${sourceCode.getText(seed)})`;
231
+
232
+
233
+ const bodyText = elementText.trimStart().startsWith('{') ||
234
+ element.type === AST_NODE_TYPES.SequenceExpression
235
+ ? `(${elementText})`
236
+ : elementText;
237
+ return `Arr.scan(${arrayText}, (${parameterText}) => ${bodyText}, ${toArgumentText(seed, sourceCode)})`;
225
238
  };
226
239
 
227
240
 
@@ -259,7 +272,9 @@ export const preferArrScan = {
259
272
  return;
260
273
  }
261
274
  const methodName = node.callee.property.name;
262
- const arrayText = sourceCode.getText(node.callee.object);
275
+
276
+
277
+ const arrayText = sourceCode.getText(skipTypeWrappers(node.callee.object));
263
278
  if (SLICING_METHODS.has(methodName)) {
264
279
  mut_slices.push({ call: node, arrayText });
265
280
  }
@@ -439,9 +454,11 @@ callback) => {
439
454
  body.callee.property.name === 'toPushed'
440
455
  ? body.arguments[0]
441
456
  : undefined;
442
- const target = spelling?.type === AST_NODE_TYPES.SpreadElement
443
- ? spelling.argument
444
- : spelling;
457
+ const target = spelling === undefined || spelling === null
458
+ ? undefined
459
+ : skipTypeWrappers(spelling.type === AST_NODE_TYPES.SpreadElement
460
+ ? spelling.argument
461
+ : spelling);
445
462
  return (target?.type === AST_NODE_TYPES.Identifier &&
446
463
  target.name === accumulatorParam.name);
447
464
  };
@@ -468,13 +485,15 @@ callback) => {
468
485
  return undefined;
469
486
  }
470
487
  const [spread, element] = body.elements;
488
+ const spreadTarget = spread?.type === AST_NODE_TYPES.SpreadElement
489
+ ? skipTypeWrappers(spread.argument)
490
+ : undefined;
471
491
  return element === null ||
472
492
  element.type === AST_NODE_TYPES.SpreadElement ||
473
- spread?.type !== AST_NODE_TYPES.SpreadElement ||
474
- spread.argument.type !== AST_NODE_TYPES.Identifier ||
475
- spread.argument.name !== accumulatorParam.name
493
+ spreadTarget?.type !== AST_NODE_TYPES.Identifier ||
494
+ spreadTarget.name !== accumulatorParam.name
476
495
  ? undefined
477
- : { accumulatorParam, accumulatorRef: spread.argument, element };
496
+ : { accumulatorParam, accumulatorRef: spreadTarget, element };
478
497
  }
479
498
 
480
499
 
@@ -487,7 +506,8 @@ callback) => {
487
506
  !Arr.isFixedLengthArray(2, body.arguments)) {
488
507
  return undefined;
489
508
  }
490
- const [target, element] = body.arguments;
509
+ const [wrappedTarget, element] = body.arguments;
510
+ const target = skipTypeWrappers(wrappedTarget);
491
511
  return element.type === AST_NODE_TYPES.SpreadElement ||
492
512
  target.type !== AST_NODE_TYPES.Identifier ||
493
513
  target.name !== accumulatorParam.name
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-arr-scan.mjs","sourceRoot":"","sources":["../../src/rules/prefer-arr-scan.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prefer-arr-scan.mjs","sourceRoot":"","sources":["../../src/rules/prefer-arr-scan.mts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-arr-sum.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-arr-sum.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AASlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,WAAW,GAAG,aAAa,CAAC;AAE9C,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAiQxD,CAAC"}
1
+ {"version":3,"file":"prefer-arr-sum.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-arr-sum.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAclC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,WAAW,GAAG,aAAa,CAAC;AAE9C,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CA2RxD,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { AST_NODE_TYPES, } from '@typescript-eslint/utils';
2
2
  import { Arr, pipe } from 'ts-data-forge';
3
+ import { skipTypeWrappers, toArgumentText, typeWrapperLayers, } from './ast-utils.mjs';
3
4
  import { buildImportFixes, getNamedImports, getTsDataForgeImport, } from './import-utils.mjs';
4
5
  export const preferArrSum = {
5
6
  meta: {
@@ -23,7 +24,9 @@ export const preferArrSum = {
23
24
  return {
24
25
  CallExpression: (node) => {
25
26
 
27
+
26
28
  if (node.callee.type !== AST_NODE_TYPES.MemberExpression ||
29
+ node.callee.computed ||
27
30
  node.callee.property.type !== AST_NODE_TYPES.Identifier ||
28
31
  node.callee.property.name !== 'reduce') {
29
32
  return;
@@ -34,7 +37,10 @@ export const preferArrSum = {
34
37
  return;
35
38
  }
36
39
  const reducer = node.arguments[0];
37
- const initialValue = node.arguments[1];
40
+
41
+
42
+
43
+ const initialValue = skipTypeWrappers(node.arguments[1]);
38
44
 
39
45
  if (initialValue.type !== AST_NODE_TYPES.Literal ||
40
46
  initialValue.value !== 0) {
@@ -55,44 +61,52 @@ export const preferArrSum = {
55
61
  if (checker === undefined) {
56
62
  return;
57
63
  }
64
+ if (body.type !== AST_NODE_TYPES.BinaryExpression ||
65
+ body.operator !== '+') {
66
+ return;
67
+ }
68
+ const left = skipTypeWrappers(body.left);
69
+ const right = skipTypeWrappers(body.right);
70
+
71
+ if (left.type === AST_NODE_TYPES.Identifier &&
72
+ left.name === param1.name &&
73
+ right.type === AST_NODE_TYPES.Identifier &&
74
+ right.name === param2.name) {
58
75
 
59
- if (body.type === AST_NODE_TYPES.BinaryExpression &&
60
- body.operator === '+' &&
61
- body.left.type === AST_NODE_TYPES.Identifier &&
62
- body.left.name === param1.name &&
63
- body.right.type === AST_NODE_TYPES.Identifier &&
64
- body.right.name === param2.name) {
65
76
 
66
- const type = pipe(services?.esTreeNodeToTSNodeMap?.get(arrayExpression)).mapNullable((tsNode) => checker.getTypeAtLocation(tsNode)).value;
67
- if (type !== undefined &&
68
- (checker.isArrayType(type) || checker.isTupleType(type))) {
77
+
78
+ const isNumberArray = (
79
+
80
+
81
+ expression) => {
82
+ const type = pipe(services?.esTreeNodeToTSNodeMap?.get(expression)).mapNullable((tsNode) => checker.getTypeAtLocation(tsNode)).value;
83
+ if (type === undefined ||
84
+ (!checker.isArrayType(type) && !checker.isTupleType(type))) {
85
+ return false;
86
+ }
69
87
 
70
88
 
71
89
  const typeArguments = checker.getTypeArguments(
72
90
 
73
91
  type);
74
- if (Arr.isNonEmpty(typeArguments)) {
75
- const elementType = typeArguments[0];
76
- const numberType = checker.getNumberType();
77
92
 
78
- if (checker.isTypeAssignableTo(elementType, numberType)) {
79
- mut_nodesToFix.push({
80
- node,
81
- arrayExpression,
82
- messageId: 'useArrSum',
83
- });
84
- }
85
- }
93
+ return (Arr.isNonEmpty(typeArguments) &&
94
+ checker.isTypeAssignableTo(typeArguments[0], checker.getNumberType()));
95
+ };
96
+ if (typeWrapperLayers(arrayExpression).every(isNumberArray)) {
97
+ mut_nodesToFix.push({
98
+ node,
99
+ arrayExpression,
100
+ messageId: 'useArrSum',
101
+ });
86
102
  }
87
103
  return;
88
104
  }
89
105
 
90
- if (body.type === AST_NODE_TYPES.BinaryExpression &&
91
- body.operator === '+' &&
92
- body.left.type === AST_NODE_TYPES.MemberExpression &&
93
- body.right.type === AST_NODE_TYPES.MemberExpression) {
94
- const leftObj = body.left.object;
95
- const rightObj = body.right.object;
106
+ if (left.type === AST_NODE_TYPES.MemberExpression &&
107
+ right.type === AST_NODE_TYPES.MemberExpression) {
108
+ const leftObj = skipTypeWrappers(left.object);
109
+ const rightObj = skipTypeWrappers(right.object);
96
110
  if (leftObj.type !== AST_NODE_TYPES.Identifier ||
97
111
  leftObj.name !== param1.name ||
98
112
  rightObj.type !== AST_NODE_TYPES.Identifier ||
@@ -100,20 +114,20 @@ export const preferArrSum = {
100
114
  return;
101
115
  }
102
116
 
103
- const leftProp = body.left.property;
104
- const rightProp = body.right.property;
117
+ const leftProp = left.property;
118
+ const rightProp = right.property;
105
119
  let mut_propName;
106
120
  if (leftProp.type === AST_NODE_TYPES.Identifier &&
107
- !body.left.computed &&
121
+ !left.computed &&
108
122
  rightProp.type === AST_NODE_TYPES.Identifier &&
109
- !body.right.computed &&
123
+ !right.computed &&
110
124
  leftProp.name === rightProp.name) {
111
125
  mut_propName = leftProp.name;
112
126
  }
113
127
  else if (leftProp.type === AST_NODE_TYPES.Literal &&
114
- body.left.computed &&
128
+ left.computed &&
115
129
  rightProp.type === AST_NODE_TYPES.Literal &&
116
- body.right.computed &&
130
+ right.computed &&
117
131
  leftProp.value === rightProp.value &&
118
132
  typeof leftProp.value === 'string') {
119
133
  mut_propName = leftProp.value;
@@ -123,8 +137,8 @@ export const preferArrSum = {
123
137
  }
124
138
 
125
139
  if (services?.program !== undefined && services.program !== null) {
126
- const tsLeftProp = services.esTreeNodeToTSNodeMap?.get(body.left);
127
- const tsRightProp = services.esTreeNodeToTSNodeMap?.get(body.right);
140
+ const tsLeftProp = services.esTreeNodeToTSNodeMap?.get(left);
141
+ const tsRightProp = services.esTreeNodeToTSNodeMap?.get(right);
128
142
  if (tsLeftProp !== undefined && tsRightProp !== undefined) {
129
143
  const leftPropType = checker.getTypeAtLocation(tsLeftProp);
130
144
  const rightPropType = checker.getTypeAtLocation(tsRightProp);
@@ -138,7 +152,7 @@ export const preferArrSum = {
138
152
  }
139
153
 
140
154
  const mapperParam = param1.name;
141
- const mapper = body.left.computed
155
+ const mapper = left.computed
142
156
  ? `${mapperParam} => ${mapperParam}['${mut_propName}']`
143
157
  : `${mapperParam} => ${mapperParam}.${mut_propName}`;
144
158
  mut_nodesToFix.push({
@@ -153,7 +167,7 @@ export const preferArrSum = {
153
167
  const namedImports = getNamedImports(tsDataForgeImport);
154
168
  const hasArrImport = namedImports.includes('Arr');
155
169
  for (const [index, nodeInfo] of mut_nodesToFix.entries()) {
156
- const arrayText = sourceCode.getText(nodeInfo.arrayExpression);
170
+ const arrayText = toArgumentText(nodeInfo.arrayExpression, sourceCode);
157
171
  context.report({
158
172
  node: nodeInfo.node,
159
173
  messageId: nodeInfo.messageId,
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-arr-sum.mjs","sourceRoot":"","sources":["../../src/rules/prefer-arr-sum.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prefer-arr-sum.mjs","sourceRoot":"","sources":["../../src/rules/prefer-arr-sum.mts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-arr-uniq.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-arr-uniq.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AASlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,YAAY,GAAG,gBAAgB,CAAC;AAElD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CA+KzD,CAAC"}
1
+ {"version":3,"file":"prefer-arr-uniq.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-arr-uniq.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAUlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,YAAY,GAAG,gBAAgB,CAAC;AAElD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAmLzD,CAAC"}