eslint-plugin-ts-data-forge 0.10.5 → 0.10.7

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 (107) hide show
  1. package/README.md +3 -3
  2. package/dist/plugin.d.mts +2 -2
  3. package/dist/plugin.d.mts.map +1 -1
  4. package/dist/plugin.mjs +1 -0
  5. package/dist/plugin.mjs.map +1 -1
  6. package/dist/rule-types.d.mts +5 -5
  7. package/dist/rules/ast-utils.d.mts +8 -9
  8. package/dist/rules/ast-utils.d.mts.map +1 -1
  9. package/dist/rules/ast-utils.mjs +3 -4
  10. package/dist/rules/ast-utils.mjs.map +1 -1
  11. package/dist/rules/import-binding.d.mts +38 -0
  12. package/dist/rules/import-binding.d.mts.map +1 -0
  13. package/dist/rules/import-binding.mjs +53 -0
  14. package/dist/rules/import-binding.mjs.map +1 -0
  15. package/dist/rules/mutable-result.mjs +37 -37
  16. package/dist/rules/mutable-result.mjs.map +1 -1
  17. package/dist/rules/no-unnecessary-type-guard.d.mts.map +1 -1
  18. package/dist/rules/no-unnecessary-type-guard.mjs +146 -143
  19. package/dist/rules/no-unnecessary-type-guard.mjs.map +1 -1
  20. package/dist/rules/prefer-arr-generate.d.mts +2 -2
  21. package/dist/rules/prefer-arr-generate.d.mts.map +1 -1
  22. package/dist/rules/prefer-arr-generate.mjs +146 -136
  23. package/dist/rules/prefer-arr-generate.mjs.map +1 -1
  24. package/dist/rules/prefer-arr-is-bounded-length-array.d.mts.map +1 -1
  25. package/dist/rules/prefer-arr-is-bounded-length-array.mjs +14 -16
  26. package/dist/rules/prefer-arr-is-bounded-length-array.mjs.map +1 -1
  27. package/dist/rules/prefer-arr-is-fixed-length-array.d.mts.map +1 -1
  28. package/dist/rules/prefer-arr-is-fixed-length-array.mjs +15 -17
  29. package/dist/rules/prefer-arr-is-fixed-length-array.mjs.map +1 -1
  30. package/dist/rules/prefer-arr-is-max-length-array.d.mts.map +1 -1
  31. package/dist/rules/prefer-arr-is-max-length-array.mjs +14 -16
  32. package/dist/rules/prefer-arr-is-max-length-array.mjs.map +1 -1
  33. package/dist/rules/prefer-arr-is-min-length-array.d.mts.map +1 -1
  34. package/dist/rules/prefer-arr-is-min-length-array.mjs +14 -16
  35. package/dist/rules/prefer-arr-is-min-length-array.mjs.map +1 -1
  36. package/dist/rules/prefer-arr-is-non-empty.d.mts.map +1 -1
  37. package/dist/rules/prefer-arr-is-non-empty.mjs +14 -16
  38. package/dist/rules/prefer-arr-is-non-empty.mjs.map +1 -1
  39. package/dist/rules/prefer-arr-scan.d.mts.map +1 -1
  40. package/dist/rules/prefer-arr-scan.mjs +9 -18
  41. package/dist/rules/prefer-arr-scan.mjs.map +1 -1
  42. package/dist/rules/prefer-arr-sum.d.mts.map +1 -1
  43. package/dist/rules/prefer-arr-sum.mjs +16 -21
  44. package/dist/rules/prefer-arr-sum.mjs.map +1 -1
  45. package/dist/rules/prefer-arr-uniq.d.mts.map +1 -1
  46. package/dist/rules/prefer-arr-uniq.mjs +38 -43
  47. package/dist/rules/prefer-arr-uniq.mjs.map +1 -1
  48. package/dist/rules/prefer-as-int.d.mts.map +1 -1
  49. package/dist/rules/prefer-as-int.mjs +19 -26
  50. package/dist/rules/prefer-as-int.mjs.map +1 -1
  51. package/dist/rules/prefer-canonical-array-slicing.d.mts.map +1 -1
  52. package/dist/rules/prefer-canonical-array-slicing.mjs +49 -16
  53. package/dist/rules/prefer-canonical-array-slicing.mjs.map +1 -1
  54. package/dist/rules/prefer-canonical-length-cast.mjs +15 -15
  55. package/dist/rules/prefer-canonical-length-cast.mjs.map +1 -1
  56. package/dist/rules/prefer-num-safe-parse-float.d.mts +1 -1
  57. package/dist/rules/prefer-num-safe-parse-float.d.mts.map +1 -1
  58. package/dist/rules/prefer-num-safe-parse-int.d.mts +1 -1
  59. package/dist/rules/prefer-num-safe-parse-int.d.mts.map +1 -1
  60. package/dist/rules/prefer-obj-over-entries-round-trip.d.mts.map +1 -1
  61. package/dist/rules/prefer-obj-over-entries-round-trip.mjs +100 -99
  62. package/dist/rules/prefer-obj-over-entries-round-trip.mjs.map +1 -1
  63. package/dist/rules/prefer-pipe-map-nullable.d.mts +2 -2
  64. package/dist/rules/prefer-pipe-map-nullable.d.mts.map +1 -1
  65. package/dist/rules/prefer-pipe-map-nullable.mjs +2 -4
  66. package/dist/rules/prefer-pipe-map-nullable.mjs.map +1 -1
  67. package/dist/rules/prefer-range-for-loop.d.mts.map +1 -1
  68. package/dist/rules/prefer-range-for-loop.mjs +18 -24
  69. package/dist/rules/prefer-range-for-loop.mjs.map +1 -1
  70. package/dist/rules/rules.d.mts +2 -2
  71. package/package.json +6 -6
  72. package/src/plugin.mts +4 -3
  73. package/src/rule-types.mts +5 -5
  74. package/src/rules/ast-utils.mts +14 -15
  75. package/src/rules/import-binding.mts +94 -0
  76. package/src/rules/mutable-result.mts +56 -56
  77. package/src/rules/no-unnecessary-type-guard.mts +203 -207
  78. package/src/rules/no-unnecessary-type-guard.test.mts +62 -2
  79. package/src/rules/prefer-arr-generate.mts +222 -214
  80. package/src/rules/prefer-arr-generate.test.mts +490 -133
  81. package/src/rules/prefer-arr-is-bounded-length-array.mts +22 -33
  82. package/src/rules/prefer-arr-is-fixed-length-array.mts +26 -38
  83. package/src/rules/prefer-arr-is-fixed-length-array.test.mts +16 -7
  84. package/src/rules/prefer-arr-is-max-length-array.mts +23 -36
  85. package/src/rules/prefer-arr-is-max-length-array.test.mts +16 -7
  86. package/src/rules/prefer-arr-is-min-length-array.mts +23 -36
  87. package/src/rules/prefer-arr-is-min-length-array.test.mts +16 -7
  88. package/src/rules/prefer-arr-is-non-empty.mts +17 -34
  89. package/src/rules/prefer-arr-is-non-empty.test.mts +110 -0
  90. package/src/rules/prefer-arr-scan.mts +17 -42
  91. package/src/rules/prefer-arr-scan.test.mts +55 -0
  92. package/src/rules/prefer-arr-sum.mts +22 -36
  93. package/src/rules/prefer-arr-uniq.mts +51 -62
  94. package/src/rules/prefer-arr-uniq.test.mts +46 -20
  95. package/src/rules/prefer-as-int.mts +27 -52
  96. package/src/rules/prefer-as-int.test.mts +79 -29
  97. package/src/rules/prefer-canonical-array-slicing.mts +101 -40
  98. package/src/rules/prefer-canonical-array-slicing.test.mts +133 -34
  99. package/src/rules/prefer-canonical-length-cast.mts +29 -29
  100. package/src/rules/prefer-canonical-length-guard.mts +2 -2
  101. package/src/rules/prefer-num-safe-parse-float.test.mts +255 -94
  102. package/src/rules/prefer-num-safe-parse-int.test.mts +212 -76
  103. package/src/rules/prefer-obj-over-entries-round-trip.mts +152 -170
  104. package/src/rules/prefer-obj-over-entries-round-trip.test.mts +48 -6
  105. package/src/rules/prefer-pipe-map-nullable.mts +17 -19
  106. package/src/rules/prefer-range-for-loop.mts +37 -61
  107. package/src/rules/prefer-range-for-loop.test.mts +2 -2
@@ -1,6 +1,6 @@
1
- import { buildNamedImportFix, getArgumentText, getImportDeclarations, getNamedImports, skipTypeWrappers, } from 'eslint-rule-forge';
1
+ import { getArgumentText, skipTypeWrappers } from 'eslint-rule-forge';
2
2
  import { asLengthAccess, isArrayOrTupleExpression, isIntegerLiteralOrConstant, isPartOfBoundedLengthCheck, } from './ast-utils.mjs';
3
- import { TS_DATA_FORGE_MODULE } from './constants.mjs';
3
+ import { tsDataForgeValueAt } from './import-binding.mjs';
4
4
  export const preferArrIsMaxLengthArray = {
5
5
  meta: {
6
6
  type: 'suggestion',
@@ -16,8 +16,6 @@ export const preferArrIsMaxLengthArray = {
16
16
  },
17
17
  create: (context) => {
18
18
  const sourceCode = context.sourceCode;
19
- const program = sourceCode.ast;
20
- const tsDataForgeImports = getImportDeclarations(program, TS_DATA_FORGE_MODULE);
21
19
  const services = context.sourceCode.parserServices;
22
20
  const mut_nodesToFix = [];
23
21
  return {
@@ -58,12 +56,12 @@ export const preferArrIsMaxLengthArray = {
58
56
  });
59
57
  },
60
58
  'Program:exit': () => {
61
- const namedImports = getNamedImports(tsDataForgeImports);
62
- const hasArrImport = namedImports.includes('Arr');
63
- for (const [index, { node, arrayExpression, lengthExpression },] of mut_nodesToFix.entries()) {
59
+ const arrAt = tsDataForgeValueAt(sourceCode, 'Arr');
60
+ for (const { node, arrayExpression, lengthExpression, } of mut_nodesToFix) {
64
61
  const arrayText = getArgumentText(sourceCode, arrayExpression);
65
62
  const lengthText = sourceCode.getText(lengthExpression);
66
63
  const originalText = sourceCode.getText(node);
64
+ const arr = arrAt(node);
67
65
  context.report({
68
66
  node,
69
67
  messageId: 'useIsMaxLengthArray',
@@ -72,15 +70,15 @@ export const preferArrIsMaxLengthArray = {
72
70
  arrayName: arrayText,
73
71
  length: lengthText,
74
72
  },
75
- fix: (fixer) => {
76
- const replacement = `Arr.isMaxLengthArray(${lengthText}, ${arrayText})`;
77
- const importFixes = index === 0 && !hasArrImport
78
- ? buildNamedImportFix(fixer, program, TS_DATA_FORGE_MODULE, [
79
- 'Arr',
80
- ])
81
- : [];
82
- return [...importFixes, fixer.replaceText(node, replacement)];
83
- },
73
+ fix: arr === undefined
74
+ ? null
75
+ : (fixer) => {
76
+ const replacement = `${arr.localName}.isMaxLengthArray(${lengthText}, ${arrayText})`;
77
+ return [
78
+ ...arr.edits(fixer),
79
+ fixer.replaceText(node, replacement),
80
+ ];
81
+ },
84
82
  });
85
83
  }
86
84
  },
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-arr-is-max-length-array.mjs","sourceRoot":"","sources":["../../src/rules/prefer-arr-is-max-length-array.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prefer-arr-is-max-length-array.mjs","sourceRoot":"","sources":["../../src/rules/prefer-arr-is-max-length-array.mts"],"names":[],"mappings":"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"}
@@ -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,KAAK,EAAE,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AAgBnE,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,qBAAqB,CAAC;AAExC,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,UAAU,CACzD,UAAU,EACV,OAAO,CA2HC,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;AAUnE,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,qBAAqB,CAAC;AAExC,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,UAAU,CACzD,UAAU,EACV,OAAO,CAoHC,CAAC"}
@@ -1,6 +1,6 @@
1
- import { buildNamedImportFix, getArgumentText, getImportDeclarations, getNamedImports, skipTypeWrappers, } from 'eslint-rule-forge';
1
+ import { getArgumentText, skipTypeWrappers } from 'eslint-rule-forge';
2
2
  import { asLengthAccess, isArrayOrTupleExpression, isIntegerLiteralOrConstant, isPartOfBoundedLengthCheck, } from './ast-utils.mjs';
3
- import { TS_DATA_FORGE_MODULE } from './constants.mjs';
3
+ import { tsDataForgeValueAt } from './import-binding.mjs';
4
4
  export const preferArrIsMinLengthArray = {
5
5
  meta: {
6
6
  type: 'suggestion',
@@ -16,8 +16,6 @@ export const preferArrIsMinLengthArray = {
16
16
  },
17
17
  create: (context) => {
18
18
  const sourceCode = context.sourceCode;
19
- const program = sourceCode.ast;
20
- const tsDataForgeImports = getImportDeclarations(program, TS_DATA_FORGE_MODULE);
21
19
  const services = context.sourceCode.parserServices;
22
20
  const mut_nodesToFix = [];
23
21
  return {
@@ -58,12 +56,12 @@ export const preferArrIsMinLengthArray = {
58
56
  });
59
57
  },
60
58
  'Program:exit': () => {
61
- const namedImports = getNamedImports(tsDataForgeImports);
62
- const hasArrImport = namedImports.includes('Arr');
63
- for (const [index, { node, arrayExpression, lengthExpression },] of mut_nodesToFix.entries()) {
59
+ const arrAt = tsDataForgeValueAt(sourceCode, 'Arr');
60
+ for (const { node, arrayExpression, lengthExpression, } of mut_nodesToFix) {
64
61
  const arrayText = getArgumentText(sourceCode, arrayExpression);
65
62
  const lengthText = sourceCode.getText(lengthExpression);
66
63
  const originalText = sourceCode.getText(node);
64
+ const arr = arrAt(node);
67
65
  context.report({
68
66
  node,
69
67
  messageId: 'useIsMinLengthArray',
@@ -72,15 +70,15 @@ export const preferArrIsMinLengthArray = {
72
70
  arrayName: arrayText,
73
71
  length: lengthText,
74
72
  },
75
- fix: (fixer) => {
76
- const replacement = `Arr.isMinLengthArray(${lengthText}, ${arrayText})`;
77
- const importFixes = index === 0 && !hasArrImport
78
- ? buildNamedImportFix(fixer, program, TS_DATA_FORGE_MODULE, [
79
- 'Arr',
80
- ])
81
- : [];
82
- return [...importFixes, fixer.replaceText(node, replacement)];
83
- },
73
+ fix: arr === undefined
74
+ ? null
75
+ : (fixer) => {
76
+ const replacement = `${arr.localName}.isMinLengthArray(${lengthText}, ${arrayText})`;
77
+ return [
78
+ ...arr.edits(fixer),
79
+ fixer.replaceText(node, replacement),
80
+ ];
81
+ },
84
82
  });
85
83
  }
86
84
  },
@@ -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;AAWlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,eAAe,CAAC;AAElC,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CA6G/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;AAKlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,eAAe,CAAC;AAElC,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAkG/D,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { AST_NODE_TYPES, } from '@typescript-eslint/utils';
2
- import { buildNamedImportFix, getArgumentText, getImportDeclarations, getNamedImports, skipTypeWrappers, } from 'eslint-rule-forge';
2
+ import { getArgumentText, skipTypeWrappers } from 'eslint-rule-forge';
3
3
  import { asLengthAccess, isArrayOrTupleExpression } from './ast-utils.mjs';
4
- import { TS_DATA_FORGE_MODULE } from './constants.mjs';
4
+ import { tsDataForgeValueAt } from './import-binding.mjs';
5
5
  export const preferArrIsNonEmpty = {
6
6
  meta: {
7
7
  type: 'suggestion',
@@ -17,8 +17,6 @@ export const preferArrIsNonEmpty = {
17
17
  },
18
18
  create: (context) => {
19
19
  const sourceCode = context.sourceCode;
20
- const program = sourceCode.ast;
21
- const tsDataForgeImports = getImportDeclarations(program, TS_DATA_FORGE_MODULE);
22
20
  const services = context.sourceCode.parserServices;
23
21
  const mut_nodesToFix = [];
24
22
  return {
@@ -48,11 +46,11 @@ export const preferArrIsNonEmpty = {
48
46
  });
49
47
  },
50
48
  'Program:exit': () => {
51
- const namedImports = getNamedImports(tsDataForgeImports);
52
- const hasArrImport = namedImports.includes('Arr');
53
- for (const [index, { node, arrayExpression },] of mut_nodesToFix.entries()) {
49
+ const arrAt = tsDataForgeValueAt(sourceCode, 'Arr');
50
+ for (const { node, arrayExpression } of mut_nodesToFix) {
54
51
  const arrayText = getArgumentText(sourceCode, arrayExpression);
55
52
  const originalText = sourceCode.getText(node);
53
+ const arr = arrAt(node);
56
54
  context.report({
57
55
  node,
58
56
  messageId: 'useIsNonEmpty',
@@ -60,15 +58,15 @@ export const preferArrIsNonEmpty = {
60
58
  original: originalText,
61
59
  arrayName: arrayText,
62
60
  },
63
- fix: (fixer) => {
64
- const replacement = `Arr.isNonEmpty(${arrayText})`;
65
- const importFixes = index === 0 && !hasArrImport
66
- ? buildNamedImportFix(fixer, program, TS_DATA_FORGE_MODULE, [
67
- 'Arr',
68
- ])
69
- : [];
70
- return [...importFixes, fixer.replaceText(node, replacement)];
71
- },
61
+ fix: arr === undefined
62
+ ? null
63
+ : (fixer) => {
64
+ const replacement = `${arr.localName}.isNonEmpty(${arrayText})`;
65
+ return [
66
+ ...arr.edits(fixer),
67
+ fixer.replaceText(node, replacement),
68
+ ];
69
+ },
72
70
  });
73
71
  }
74
72
  },
@@ -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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"}
@@ -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;AAclC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,qBAAqB,GAAG,yBAAyB,CAAC;AAkDpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0FG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CA8YzD,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;AAWlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,qBAAqB,GAAG,yBAAyB,CAAC;AAmDpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0FG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAuXzD,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { AST_NODE_TYPES, } from '@typescript-eslint/utils';
2
- import { buildNamedImportFix, getArgumentText, getImportDeclarations, getNamedImports, skipTypeWrappers, typeWrapperLayers, } from 'eslint-rule-forge';
2
+ import { getArgumentText, skipTypeWrappers, typeWrapperLayers, } from 'eslint-rule-forge';
3
3
  import { Arr } from 'ts-data-forge';
4
4
  import * as ts from 'typescript';
5
- import { TS_DATA_FORGE_MODULE } from './constants.mjs';
5
+ import { tsDataForgeValueAt } from './import-binding.mjs';
6
6
 
7
7
  const SLICING_METHODS = new Set([
8
8
  'slice',
@@ -115,8 +115,6 @@ export const preferArrScan = {
115
115
  },
116
116
  create: (context) => {
117
117
  const sourceCode = context.sourceCode;
118
- const program = sourceCode.ast;
119
- const tsDataForgeImports = getImportDeclarations(program, TS_DATA_FORGE_MODULE);
120
118
  const services = sourceCode.parserServices;
121
119
  const checker = services?.program?.getTypeChecker();
122
120
 
@@ -237,7 +235,7 @@ export const preferArrScan = {
237
235
  element.type === AST_NODE_TYPES.SequenceExpression
238
236
  ? `(${elementText})`
239
237
  : elementText;
240
- return `Arr.scan(${arrayText}, (${parameterText}) => ${bodyText}, ${getArgumentText(sourceCode, seed)})`;
238
+ return `scan(${arrayText}, (${parameterText}) => ${bodyText}, ${getArgumentText(sourceCode, seed)})`;
241
239
  };
242
240
 
243
241
 
@@ -329,24 +327,17 @@ export const preferArrScan = {
329
327
 
330
328
 
331
329
  'Program:exit': () => {
332
- const hasArrImport = getNamedImports(tsDataForgeImports).includes('Arr');
333
-
334
-
335
- const mut_importNeededBy = hasArrImport
336
- ? undefined
337
- : mut_accumulations.find((accumulation) => accumulation.replacement !== undefined)?.call;
338
- for (const accumulation of mut_accumulations) {
339
- const { call, replacement } = accumulation;
330
+ const arrAt = tsDataForgeValueAt(sourceCode, 'Arr');
331
+ for (const { call, replacement } of mut_accumulations) {
332
+ const arr = arrAt(call);
340
333
  context.report({
341
334
  node: call,
342
335
  messageId: 'preferArrScanAccumulate',
343
- fix: replacement === undefined
336
+ fix: replacement === undefined || arr === undefined
344
337
  ? undefined
345
338
  : (fixer) => [
346
- ...(call === mut_importNeededBy
347
- ? buildNamedImportFix(fixer, program, TS_DATA_FORGE_MODULE, ['Arr'])
348
- : []),
349
- fixer.replaceText(call, replacement),
339
+ ...arr.edits(fixer),
340
+ fixer.replaceText(call, `${arr.localName}.${replacement}`),
350
341
  ],
351
342
  });
352
343
  }
@@ -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;AAalC,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,CAgSxD,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;AAUlC,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,CAqRxD,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { AST_NODE_TYPES, } from '@typescript-eslint/utils';
2
- import { buildNamedImportFix, getArgumentText, getImportDeclarations, getNamedImports, skipTypeWrappers, typeWrapperLayers, } from 'eslint-rule-forge';
2
+ import { getArgumentText, skipTypeWrappers, typeWrapperLayers, } from 'eslint-rule-forge';
3
3
  import { Arr, pipe } from 'ts-data-forge';
4
- import { TS_DATA_FORGE_MODULE } from './constants.mjs';
4
+ import { tsDataForgeValueAt } from './import-binding.mjs';
5
5
  export const preferArrSum = {
6
6
  meta: {
7
7
  type: 'suggestion',
@@ -18,8 +18,6 @@ export const preferArrSum = {
18
18
  },
19
19
  create: (context) => {
20
20
  const sourceCode = context.sourceCode;
21
- const program = sourceCode.ast;
22
- const tsDataForgeImports = getImportDeclarations(program, TS_DATA_FORGE_MODULE);
23
21
  const services = context.sourceCode.parserServices;
24
22
  const mut_nodesToFix = [];
25
23
  return {
@@ -165,10 +163,10 @@ export const preferArrSum = {
165
163
  }
166
164
  },
167
165
  'Program:exit': () => {
168
- const namedImports = getNamedImports(tsDataForgeImports);
169
- const hasArrImport = namedImports.includes('Arr');
170
- for (const [index, nodeInfo] of mut_nodesToFix.entries()) {
166
+ const arrAt = tsDataForgeValueAt(sourceCode, 'Arr');
167
+ for (const nodeInfo of mut_nodesToFix) {
171
168
  const arrayText = getArgumentText(sourceCode, nodeInfo.arrayExpression);
169
+ const arr = arrAt(nodeInfo.node);
172
170
  context.report({
173
171
  node: nodeInfo.node,
174
172
  messageId: nodeInfo.messageId,
@@ -176,20 +174,17 @@ export const preferArrSum = {
176
174
  arrayName: arrayText,
177
175
  mapper: nodeInfo.mapper ?? '',
178
176
  },
179
- fix: (fixer) => {
180
- const replacement = nodeInfo.messageId === 'useArrSum'
181
- ? `Arr.sum(${arrayText})`
182
- : `Arr.sumBy(${arrayText}, ${nodeInfo.mapper})`;
183
- const importFixes = index === 0 && !hasArrImport
184
- ? buildNamedImportFix(fixer, program, TS_DATA_FORGE_MODULE, [
185
- 'Arr',
186
- ])
187
- : [];
188
- return [
189
- ...importFixes,
190
- fixer.replaceText(nodeInfo.node, replacement),
191
- ];
192
- },
177
+ fix: arr === undefined
178
+ ? null
179
+ : (fixer) => {
180
+ const replacement = nodeInfo.messageId === 'useArrSum'
181
+ ? `${arr.localName}.sum(${arrayText})`
182
+ : `${arr.localName}.sumBy(${arrayText}, ${nodeInfo.mapper})`;
183
+ return [
184
+ ...arr.edits(fixer),
185
+ fixer.replaceText(nodeInfo.node, replacement),
186
+ ];
187
+ },
193
188
  });
194
189
  }
195
190
  },
@@ -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,EAGL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAclC,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,CAwLzD,CAAC"}
1
+ {"version":3,"file":"prefer-arr-uniq.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-arr-uniq.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAYlC,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,8 +1,9 @@
1
1
  import { AST_NODE_TYPES, ASTUtils, } from '@typescript-eslint/utils';
2
- import { buildNamedImportFix, getArgumentText, getImportDeclarations, getImportedLocalName, skipTypeWrappers, typeWrapperLayers, } from 'eslint-rule-forge';
2
+ import { getArgumentText, skipTypeWrappers, typeWrapperLayers, } from 'eslint-rule-forge';
3
3
  import { Arr } from 'ts-data-forge';
4
4
  import * as ts from 'typescript';
5
- import { primitiveTypeFlags, TS_DATA_FORGE_MODULE } from './constants.mjs';
5
+ import { primitiveTypeFlags } from './constants.mjs';
6
+ import { tsDataForgeValueAt } from './import-binding.mjs';
6
7
  import { needsMutableResult } from './mutable-result.mjs';
7
8
 
8
9
 
@@ -30,8 +31,6 @@ export const preferArrUniq = {
30
31
  },
31
32
  create: (context) => {
32
33
  const sourceCode = context.sourceCode;
33
- const program = sourceCode.ast;
34
- const tsDataForgeImports = getImportDeclarations(program, TS_DATA_FORGE_MODULE);
35
34
  const services = sourceCode.parserServices;
36
35
  const checker = services?.program?.getTypeChecker();
37
36
  const esTreeNodeToTSNodeMap = services?.esTreeNodeToTSNodeMap;
@@ -103,30 +102,24 @@ export const preferArrUniq = {
103
102
  check(node, element.argument);
104
103
  },
105
104
  'Program:exit': () => {
106
- const arrLocalName = getImportedLocalName(tsDataForgeImports, 'Arr');
107
- const arrName = arrLocalName ?? 'Arr';
108
-
109
-
110
-
111
- const firstAutofixable = mut_matches.find((m) => m.autofixable);
105
+ const arrAt = tsDataForgeValueAt(sourceCode, 'Arr');
112
106
  for (const match of mut_matches) {
113
107
  const arrayText = sourceCode.getText(match.arrayExpression);
114
108
  const argumentText = getArgumentText(sourceCode, match.arrayExpression);
115
- const buildFix = (withImport) => (fixer) => [
116
- ...(withImport && arrLocalName === undefined
117
- ? buildNamedImportFix(fixer, program, TS_DATA_FORGE_MODULE, [
118
- 'Arr',
119
- ])
120
- : []),
121
- fixer.replaceText(match.node, `${arrName}.uniq(${argumentText})`),
122
- ];
109
+ const arr = arrAt(match.node);
110
+ const fix = arr === undefined
111
+ ? null
112
+ : (fixer) => [
113
+ ...arr.edits(fixer),
114
+ fixer.replaceText(match.node, `${arr.localName}.uniq(${argumentText})`),
115
+ ];
123
116
  const data = { arrayName: arrayText };
124
117
  if (match.autofixable) {
125
118
  context.report({
126
119
  node: match.node,
127
120
  messageId: 'useArrUniq',
128
121
  data,
129
- fix: buildFix(match === firstAutofixable),
122
+ fix,
130
123
  });
131
124
  }
132
125
  else {
@@ -134,13 +127,15 @@ export const preferArrUniq = {
134
127
  node: match.node,
135
128
  messageId: 'useArrUniq',
136
129
  data,
137
- suggest: [
138
- {
139
- messageId: 'suggestArrUniq',
140
- data,
141
- fix: buildFix(true),
142
- },
143
- ],
130
+ suggest: fix === null
131
+ ? []
132
+ : [
133
+ {
134
+ messageId: 'suggestArrUniq',
135
+ data,
136
+ fix,
137
+ },
138
+ ],
144
139
  });
145
140
  }
146
141
  }
@@ -178,6 +173,23 @@ node, name) => {
178
173
 
179
174
  return variable === null || variable.defs.length === 0;
180
175
  };
176
+ const resolveConstraint = (
177
+
178
+ checker,
179
+
180
+ type) => (type.flags & ts.TypeFlags.TypeParameter) !== 0
181
+ ? (checker.getBaseConstraintOfType(type) ?? type)
182
+ : type;
183
+ const isPrimitiveType = (
184
+
185
+ checker,
186
+
187
+ type) => {
188
+ const resolved = resolveConstraint(checker, type);
189
+ return resolved.isUnion()
190
+ ? resolved.types.every((t) => isPrimitiveType(checker, t))
191
+ : (resolved.flags & primitiveTypeFlags) !== 0;
192
+ };
181
193
 
182
194
 
183
195
 
@@ -205,21 +217,4 @@ type) => {
205
217
 
206
218
  return typeArguments.every((t) => isPrimitiveType(checker, t));
207
219
  };
208
- const isPrimitiveType = (
209
-
210
- checker,
211
-
212
- type) => {
213
- const resolved = resolveConstraint(checker, type);
214
- return resolved.isUnion()
215
- ? resolved.types.every((t) => isPrimitiveType(checker, t))
216
- : (resolved.flags & primitiveTypeFlags) !== 0;
217
- };
218
- const resolveConstraint = (
219
-
220
- checker,
221
-
222
- type) => (type.flags & ts.TypeFlags.TypeParameter) !== 0
223
- ? (checker.getBaseConstraintOfType(type) ?? type)
224
- : type;
225
220
  //# sourceMappingURL=prefer-arr-uniq.mjs.map