eslint-plugin-ts-data-forge 0.10.4 → 0.10.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/rules/ast-utils.d.mts +5 -5
- package/dist/rules/ast-utils.d.mts.map +1 -1
- package/dist/rules/ast-utils.mjs +3 -3
- package/dist/rules/ast-utils.mjs.map +1 -1
- package/dist/rules/import-binding.d.mts +38 -0
- package/dist/rules/import-binding.d.mts.map +1 -0
- package/dist/rules/import-binding.mjs +53 -0
- package/dist/rules/import-binding.mjs.map +1 -0
- package/dist/rules/mutable-result.mjs +37 -37
- package/dist/rules/mutable-result.mjs.map +1 -1
- package/dist/rules/no-unnecessary-type-guard.d.mts.map +1 -1
- package/dist/rules/no-unnecessary-type-guard.mjs +146 -143
- package/dist/rules/no-unnecessary-type-guard.mjs.map +1 -1
- package/dist/rules/prefer-arr-generate.d.mts.map +1 -1
- package/dist/rules/prefer-arr-generate.mjs +129 -131
- package/dist/rules/prefer-arr-generate.mjs.map +1 -1
- package/dist/rules/prefer-arr-is-bounded-length-array.d.mts.map +1 -1
- package/dist/rules/prefer-arr-is-bounded-length-array.mjs +14 -16
- package/dist/rules/prefer-arr-is-bounded-length-array.mjs.map +1 -1
- package/dist/rules/prefer-arr-is-fixed-length-array.d.mts.map +1 -1
- package/dist/rules/prefer-arr-is-fixed-length-array.mjs +15 -17
- package/dist/rules/prefer-arr-is-fixed-length-array.mjs.map +1 -1
- package/dist/rules/prefer-arr-is-max-length-array.d.mts.map +1 -1
- package/dist/rules/prefer-arr-is-max-length-array.mjs +14 -16
- package/dist/rules/prefer-arr-is-max-length-array.mjs.map +1 -1
- package/dist/rules/prefer-arr-is-min-length-array.d.mts.map +1 -1
- package/dist/rules/prefer-arr-is-min-length-array.mjs +14 -16
- package/dist/rules/prefer-arr-is-min-length-array.mjs.map +1 -1
- package/dist/rules/prefer-arr-is-non-empty.d.mts.map +1 -1
- package/dist/rules/prefer-arr-is-non-empty.mjs +14 -16
- package/dist/rules/prefer-arr-is-non-empty.mjs.map +1 -1
- package/dist/rules/prefer-arr-scan.d.mts.map +1 -1
- package/dist/rules/prefer-arr-scan.mjs +9 -18
- package/dist/rules/prefer-arr-scan.mjs.map +1 -1
- package/dist/rules/prefer-arr-sum.d.mts.map +1 -1
- package/dist/rules/prefer-arr-sum.mjs +16 -21
- package/dist/rules/prefer-arr-sum.mjs.map +1 -1
- package/dist/rules/prefer-arr-uniq.d.mts.map +1 -1
- package/dist/rules/prefer-arr-uniq.mjs +38 -43
- package/dist/rules/prefer-arr-uniq.mjs.map +1 -1
- package/dist/rules/prefer-as-int.d.mts.map +1 -1
- package/dist/rules/prefer-as-int.mjs +19 -26
- package/dist/rules/prefer-as-int.mjs.map +1 -1
- package/dist/rules/prefer-canonical-array-slicing.d.mts.map +1 -1
- package/dist/rules/prefer-canonical-array-slicing.mjs +49 -15
- package/dist/rules/prefer-canonical-array-slicing.mjs.map +1 -1
- package/dist/rules/prefer-canonical-length-cast.mjs +15 -15
- package/dist/rules/prefer-canonical-length-cast.mjs.map +1 -1
- package/dist/rules/prefer-obj-over-entries-round-trip.d.mts.map +1 -1
- package/dist/rules/prefer-obj-over-entries-round-trip.mjs +100 -99
- package/dist/rules/prefer-obj-over-entries-round-trip.mjs.map +1 -1
- package/dist/rules/prefer-pipe-map-nullable.d.mts.map +1 -1
- package/dist/rules/prefer-pipe-map-nullable.mjs +2 -4
- package/dist/rules/prefer-pipe-map-nullable.mjs.map +1 -1
- package/dist/rules/prefer-range-for-loop.d.mts.map +1 -1
- package/dist/rules/prefer-range-for-loop.mjs +18 -24
- package/dist/rules/prefer-range-for-loop.mjs.map +1 -1
- package/package.json +5 -5
- package/src/rules/ast-utils.mts +11 -11
- package/src/rules/import-binding.mts +94 -0
- package/src/rules/mutable-result.mts +56 -56
- package/src/rules/no-unnecessary-type-guard.mts +199 -203
- package/src/rules/no-unnecessary-type-guard.test.mts +62 -2
- package/src/rules/prefer-arr-generate.mts +184 -194
- package/src/rules/prefer-arr-generate.test.mts +262 -134
- package/src/rules/prefer-arr-is-array.test.mts +87 -5
- package/src/rules/prefer-arr-is-bounded-length-array.mts +22 -33
- package/src/rules/prefer-arr-is-fixed-length-array.mts +24 -36
- package/src/rules/prefer-arr-is-fixed-length-array.test.mts +16 -7
- package/src/rules/prefer-arr-is-max-length-array.mts +21 -34
- package/src/rules/prefer-arr-is-max-length-array.test.mts +16 -7
- package/src/rules/prefer-arr-is-min-length-array.mts +21 -34
- package/src/rules/prefer-arr-is-min-length-array.test.mts +16 -7
- package/src/rules/prefer-arr-is-non-empty.mts +17 -34
- package/src/rules/prefer-arr-is-non-empty.test.mts +110 -0
- package/src/rules/prefer-arr-scan.mts +11 -36
- package/src/rules/prefer-arr-scan.test.mts +55 -0
- package/src/rules/prefer-arr-sum.mts +19 -33
- package/src/rules/prefer-arr-uniq.mts +49 -60
- package/src/rules/prefer-arr-uniq.test.mts +46 -20
- package/src/rules/prefer-as-int.mts +27 -52
- package/src/rules/prefer-as-int.test.mts +79 -29
- package/src/rules/prefer-canonical-array-slicing.mts +86 -24
- package/src/rules/prefer-canonical-array-slicing.test.mts +133 -34
- package/src/rules/prefer-canonical-length-cast.mts +18 -18
- package/src/rules/prefer-is-non-null-object.test.mts +62 -37
- package/src/rules/prefer-is-record-and-has-key.test.mts +32 -17
- package/src/rules/prefer-num-safe-parse-float.test.mts +45 -21
- package/src/rules/prefer-num-safe-parse-int.test.mts +29 -14
- package/src/rules/prefer-obj-over-entries-round-trip.mts +152 -170
- package/src/rules/prefer-obj-over-entries-round-trip.test.mts +48 -6
- package/src/rules/prefer-pipe-map-nullable.mts +6 -8
- package/src/rules/prefer-range-for-loop.mts +31 -55
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AST_NODE_TYPES, } from '@typescript-eslint/utils';
|
|
2
|
-
import {
|
|
2
|
+
import { getArgumentText } from 'eslint-rule-forge';
|
|
3
3
|
import { Arr } from 'ts-data-forge';
|
|
4
|
-
import {
|
|
4
|
+
import { tsDataForgeValuesAt } from './import-binding.mjs';
|
|
5
5
|
const MESSAGE_ID_OF = {
|
|
6
6
|
map: 'useObjMap',
|
|
7
7
|
filter: 'useObjFilter',
|
|
@@ -24,8 +24,6 @@ export const preferObjOverEntriesRoundTrip = {
|
|
|
24
24
|
},
|
|
25
25
|
create: (context) => {
|
|
26
26
|
const sourceCode = context.sourceCode;
|
|
27
|
-
const program = sourceCode.ast;
|
|
28
|
-
const tsDataForgeImports = getImportDeclarations(program, TS_DATA_FORGE_MODULE);
|
|
29
27
|
const mut_roundTrips = [];
|
|
30
28
|
|
|
31
29
|
|
|
@@ -71,32 +69,115 @@ export const preferObjOverEntriesRoundTrip = {
|
|
|
71
69
|
mut_roundTrips.push({ node, roundTrip });
|
|
72
70
|
},
|
|
73
71
|
'Program:exit': () => {
|
|
74
|
-
const
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
!namedImports.includes(name));
|
|
72
|
+
const objAt = tsDataForgeValuesAt(sourceCode, ['Obj']).at;
|
|
73
|
+
const objOptionalAt = tsDataForgeValuesAt(sourceCode, [
|
|
74
|
+
'Obj',
|
|
75
|
+
'Optional',
|
|
76
|
+
]).at;
|
|
80
77
|
|
|
81
78
|
|
|
82
|
-
for (const
|
|
79
|
+
for (const { node, roundTrip } of mut_roundTrips) {
|
|
80
|
+
const binding = (roundTrip.body.kind === 'optional' ? objOptionalAt : objAt)(node);
|
|
81
|
+
const [objName, optionalName = 'Optional'] = binding?.localNames ?? [];
|
|
83
82
|
context.report({
|
|
84
83
|
node,
|
|
85
84
|
messageId: MESSAGE_ID_OF[roundTrip.method],
|
|
86
|
-
fix:
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
85
|
+
fix: binding === undefined || objName === undefined
|
|
86
|
+
? null
|
|
87
|
+
: (fixer) => {
|
|
88
|
+
const recordText = getArgumentText(sourceCode, roundTrip.record);
|
|
89
|
+
const replacement = `${objName}.${roundTrip.method}(${recordText}, ${buildParams(roundTrip)} => ${buildCallbackBody(roundTrip, optionalName)})`;
|
|
90
|
+
return [
|
|
91
|
+
...binding.edits(fixer),
|
|
92
|
+
fixer.replaceText(node, replacement),
|
|
93
|
+
];
|
|
94
|
+
},
|
|
94
95
|
});
|
|
95
96
|
}
|
|
96
97
|
},
|
|
97
98
|
};
|
|
98
99
|
},
|
|
99
100
|
};
|
|
101
|
+
const isElidedOrIdentifier = (element) => element === null ||
|
|
102
|
+
element === undefined ||
|
|
103
|
+
element.type === AST_NODE_TYPES.Identifier;
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
const parseEntryPattern = (pattern) => {
|
|
111
|
+
if (pattern.elements.length > 2) {
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
const [keyElement, valueElement] = pattern.elements;
|
|
115
|
+
return isElidedOrIdentifier(keyElement) && isElidedOrIdentifier(valueElement)
|
|
116
|
+
? {
|
|
117
|
+
keyParam: keyElement ?? undefined,
|
|
118
|
+
valueParam: valueElement ?? undefined,
|
|
119
|
+
}
|
|
120
|
+
: undefined;
|
|
121
|
+
};
|
|
122
|
+
const isConstAssertion = (node) => node.typeAnnotation.type === AST_NODE_TYPES.TSTypeReference &&
|
|
123
|
+
node.typeAnnotation.typeName.type === AST_NODE_TYPES.Identifier &&
|
|
124
|
+
node.typeAnnotation.typeName.name === 'const';
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
const stripTypeWrappers = (node) => node.type === AST_NODE_TYPES.TSSatisfiesExpression ||
|
|
132
|
+
(node.type === AST_NODE_TYPES.TSAsExpression && isConstAssertion(node))
|
|
133
|
+
? stripTypeWrappers(node.expression)
|
|
134
|
+
: node;
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
const parseKeptEntry = (node, keyParam) => {
|
|
141
|
+
if (keyParam === undefined) {
|
|
142
|
+
return undefined;
|
|
143
|
+
}
|
|
144
|
+
const tuple = stripTypeWrappers(node);
|
|
145
|
+
if (tuple.type !== AST_NODE_TYPES.ArrayExpression ||
|
|
146
|
+
!Arr.isFixedLengthTuple(2, tuple.elements)) {
|
|
147
|
+
return undefined;
|
|
148
|
+
}
|
|
149
|
+
const [key, value] = tuple.elements;
|
|
150
|
+
return key !== null &&
|
|
151
|
+
value !== null &&
|
|
152
|
+
key.type === AST_NODE_TYPES.Identifier &&
|
|
153
|
+
value.type !== AST_NODE_TYPES.SpreadElement &&
|
|
154
|
+
key.name === keyParam.name
|
|
155
|
+
? { key, value }
|
|
156
|
+
: undefined;
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
const parseSingletonEntry = (node, keyParam) => {
|
|
160
|
+
const array = stripTypeWrappers(node);
|
|
161
|
+
if (array.type !== AST_NODE_TYPES.ArrayExpression ||
|
|
162
|
+
!Arr.isFixedLengthTuple(1, array.elements)) {
|
|
163
|
+
return undefined;
|
|
164
|
+
}
|
|
165
|
+
const [entry] = array.elements;
|
|
166
|
+
return entry === null || entry.type === AST_NODE_TYPES.SpreadElement
|
|
167
|
+
? undefined
|
|
168
|
+
: parseKeptEntry(entry, keyParam);
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
const isEmptyArray = (node) => {
|
|
172
|
+
const array = stripTypeWrappers(node);
|
|
173
|
+
return (array.type === AST_NODE_TYPES.ArrayExpression && array.elements.length === 0);
|
|
174
|
+
};
|
|
175
|
+
const isObjectStaticCall = (node, name) => node.callee.type === AST_NODE_TYPES.MemberExpression &&
|
|
176
|
+
!node.callee.computed &&
|
|
177
|
+
node.callee.object.type === AST_NODE_TYPES.Identifier &&
|
|
178
|
+
node.callee.object.name === 'Object' &&
|
|
179
|
+
node.callee.property.type === AST_NODE_TYPES.Identifier &&
|
|
180
|
+
node.callee.property.name === name;
|
|
100
181
|
|
|
101
182
|
|
|
102
183
|
|
|
@@ -213,86 +294,6 @@ const parseEntriesRoundTrip = (node) => {
|
|
|
213
294
|
|
|
214
295
|
|
|
215
296
|
|
|
216
|
-
|
|
217
|
-
const parseEntryPattern = (pattern) => {
|
|
218
|
-
if (pattern.elements.length > 2) {
|
|
219
|
-
return undefined;
|
|
220
|
-
}
|
|
221
|
-
const [keyElement, valueElement] = pattern.elements;
|
|
222
|
-
return isElidedOrIdentifier(keyElement) && isElidedOrIdentifier(valueElement)
|
|
223
|
-
? {
|
|
224
|
-
keyParam: keyElement ?? undefined,
|
|
225
|
-
valueParam: valueElement ?? undefined,
|
|
226
|
-
}
|
|
227
|
-
: undefined;
|
|
228
|
-
};
|
|
229
|
-
const isElidedOrIdentifier = (element) => element === null ||
|
|
230
|
-
element === undefined ||
|
|
231
|
-
element.type === AST_NODE_TYPES.Identifier;
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
const parseKeptEntry = (node, keyParam) => {
|
|
238
|
-
if (keyParam === undefined) {
|
|
239
|
-
return undefined;
|
|
240
|
-
}
|
|
241
|
-
const tuple = stripTypeWrappers(node);
|
|
242
|
-
if (tuple.type !== AST_NODE_TYPES.ArrayExpression ||
|
|
243
|
-
!Arr.isFixedLengthTuple(2, tuple.elements)) {
|
|
244
|
-
return undefined;
|
|
245
|
-
}
|
|
246
|
-
const [key, value] = tuple.elements;
|
|
247
|
-
return key !== null &&
|
|
248
|
-
value !== null &&
|
|
249
|
-
key.type === AST_NODE_TYPES.Identifier &&
|
|
250
|
-
value.type !== AST_NODE_TYPES.SpreadElement &&
|
|
251
|
-
key.name === keyParam.name
|
|
252
|
-
? { key, value }
|
|
253
|
-
: undefined;
|
|
254
|
-
};
|
|
255
|
-
|
|
256
|
-
const parseSingletonEntry = (node, keyParam) => {
|
|
257
|
-
const array = stripTypeWrappers(node);
|
|
258
|
-
if (array.type !== AST_NODE_TYPES.ArrayExpression ||
|
|
259
|
-
!Arr.isFixedLengthTuple(1, array.elements)) {
|
|
260
|
-
return undefined;
|
|
261
|
-
}
|
|
262
|
-
const [entry] = array.elements;
|
|
263
|
-
return entry === null || entry.type === AST_NODE_TYPES.SpreadElement
|
|
264
|
-
? undefined
|
|
265
|
-
: parseKeptEntry(entry, keyParam);
|
|
266
|
-
};
|
|
267
|
-
|
|
268
|
-
const isEmptyArray = (node) => {
|
|
269
|
-
const array = stripTypeWrappers(node);
|
|
270
|
-
return (array.type === AST_NODE_TYPES.ArrayExpression && array.elements.length === 0);
|
|
271
|
-
};
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
const stripTypeWrappers = (node) => node.type === AST_NODE_TYPES.TSSatisfiesExpression ||
|
|
279
|
-
(node.type === AST_NODE_TYPES.TSAsExpression && isConstAssertion(node))
|
|
280
|
-
? stripTypeWrappers(node.expression)
|
|
281
|
-
: node;
|
|
282
|
-
const isConstAssertion = (node) => node.typeAnnotation.type === AST_NODE_TYPES.TSTypeReference &&
|
|
283
|
-
node.typeAnnotation.typeName.type === AST_NODE_TYPES.Identifier &&
|
|
284
|
-
node.typeAnnotation.typeName.name === 'const';
|
|
285
|
-
const isObjectStaticCall = (node, name) => node.callee.type === AST_NODE_TYPES.MemberExpression &&
|
|
286
|
-
!node.callee.computed &&
|
|
287
|
-
node.callee.object.type === AST_NODE_TYPES.Identifier &&
|
|
288
|
-
node.callee.object.name === 'Object' &&
|
|
289
|
-
node.callee.property.type === AST_NODE_TYPES.Identifier &&
|
|
290
|
-
node.callee.property.name === name;
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
297
|
const isReferencedOutside = (scope, name, dropped) => scope.variables
|
|
297
298
|
.find((variable) => variable.name === name)
|
|
298
299
|
?.references.some((reference) => !dropped.has(reference.identifier)) ??
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-obj-over-entries-round-trip.mjs","sourceRoot":"","sources":["../../src/rules/prefer-obj-over-entries-round-trip.mts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prefer-obj-over-entries-round-trip.mjs","sourceRoot":"","sources":["../../src/rules/prefer-obj-over-entries-round-trip.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-pipe-map-nullable.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-pipe-map-nullable.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"prefer-pipe-map-nullable.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-pipe-map-nullable.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAclC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,gBAAgB,GAAG,oBAAoB,CAAC;AAE1D;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAoPjE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AST_NODE_TYPES, } from '@typescript-eslint/utils';
|
|
2
|
-
import { buildCalleeResolver, getArgumentText, getImportDeclarations, hasForeignBinding, isTypeWrapper, skipTypeWrappers, } from 'eslint-rule-forge';
|
|
2
|
+
import { buildCalleeResolver, getArgumentText, getImportDeclarations, hasCommentWithin, hasForeignBinding, isTypeWrapper, skipTypeWrappers, } from 'eslint-rule-forge';
|
|
3
3
|
import { Arr } from 'ts-data-forge';
|
|
4
4
|
import * as ts from 'typescript';
|
|
5
5
|
import { TS_DATA_FORGE_MODULE } from './constants.mjs';
|
|
@@ -152,9 +152,7 @@ export const preferPipeMapNullable = {
|
|
|
152
152
|
[mapNullableCall.range[0], mapFn.range[0]],
|
|
153
153
|
[mapFn.range[1], mapNullableCall.range[1]],
|
|
154
154
|
];
|
|
155
|
-
const dropsComment = sourceCode
|
|
156
|
-
.getCommentsInside(mapNullableCall)
|
|
157
|
-
.some((comment) => droppedRanges.some(([start, end]) => start <= comment.range[0] && comment.range[1] <= end));
|
|
155
|
+
const dropsComment = hasCommentWithin(sourceCode, mapNullableCall, droppedRanges);
|
|
158
156
|
const autofixable = !dropsComment &&
|
|
159
157
|
!isTypeWrapper(mapNullableCall.callee) &&
|
|
160
158
|
keepsResultType(mapNullableCall, mapFn);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-pipe-map-nullable.mjs","sourceRoot":"","sources":["../../src/rules/prefer-pipe-map-nullable.mts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prefer-pipe-map-nullable.mjs","sourceRoot":"","sources":["../../src/rules/prefer-pipe-map-nullable.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-range-for-loop.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-range-for-loop.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"prefer-range-for-loop.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-range-for-loop.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAKlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,iBAAiB,CAAC;AAEpC,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAmO9D,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AST_NODE_TYPES, ASTUtils, } from '@typescript-eslint/utils';
|
|
2
|
-
import {
|
|
2
|
+
import { getArgumentText, skipTypeWrappers } from 'eslint-rule-forge';
|
|
3
3
|
import { Arr } from 'ts-data-forge';
|
|
4
|
-
import {
|
|
4
|
+
import { tsDataForgeValueAt } from './import-binding.mjs';
|
|
5
5
|
export const preferRangeForLoop = {
|
|
6
6
|
meta: {
|
|
7
7
|
type: 'suggestion',
|
|
@@ -17,8 +17,6 @@ export const preferRangeForLoop = {
|
|
|
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
|
|
|
23
21
|
|
|
24
22
|
|
|
@@ -141,11 +139,10 @@ export const preferRangeForLoop = {
|
|
|
141
139
|
});
|
|
142
140
|
},
|
|
143
141
|
'Program:exit': () => {
|
|
144
|
-
const
|
|
145
|
-
const hasRangeImport = namedImports.includes('range');
|
|
146
|
-
const importCarrier = mut_nodesToFix.find(({ fixable }) => fixable);
|
|
142
|
+
const rangeAt = tsDataForgeValueAt(sourceCode, 'range');
|
|
147
143
|
for (const entry of mut_nodesToFix) {
|
|
148
144
|
const { node, varName, begin, end, step } = entry;
|
|
145
|
+
const range = entry.fixable ? rangeAt(node) : undefined;
|
|
149
146
|
context.report({
|
|
150
147
|
node: node.init ?? node,
|
|
151
148
|
messageId: 'useRangeForLoop',
|
|
@@ -154,22 +151,19 @@ export const preferRangeForLoop = {
|
|
|
154
151
|
begin,
|
|
155
152
|
end,
|
|
156
153
|
},
|
|
157
|
-
fix:
|
|
158
|
-
?
|
|
154
|
+
fix: range === undefined
|
|
155
|
+
? undefined
|
|
156
|
+
: (fixer) => {
|
|
159
157
|
const bodyText = sourceCode.getText(node.body);
|
|
160
158
|
const rangeArgs = step === undefined
|
|
161
159
|
? `${begin}, ${end}`
|
|
162
160
|
: `${begin}, ${end}, ${step}`;
|
|
163
|
-
const replacement = `for (const ${varName} of range(${rangeArgs})) ${bodyText}`;
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
: [];
|
|
170
|
-
return [...importFixes, fixer.replaceText(node, replacement)];
|
|
171
|
-
}
|
|
172
|
-
: undefined,
|
|
161
|
+
const replacement = `for (const ${varName} of ${range.localName}(${rangeArgs})) ${bodyText}`;
|
|
162
|
+
return [
|
|
163
|
+
...range.edits(fixer),
|
|
164
|
+
fixer.replaceText(node, replacement),
|
|
165
|
+
];
|
|
166
|
+
},
|
|
173
167
|
});
|
|
174
168
|
}
|
|
175
169
|
},
|
|
@@ -189,6 +183,11 @@ wrapped) => {
|
|
|
189
183
|
typeof node.value === 'number' &&
|
|
190
184
|
!Number.isSafeInteger(node.value));
|
|
191
185
|
};
|
|
186
|
+
const isWithin = (
|
|
187
|
+
|
|
188
|
+
node,
|
|
189
|
+
|
|
190
|
+
container) => container.range[0] <= node.range[0] && node.range[1] <= container.range[1];
|
|
192
191
|
|
|
193
192
|
|
|
194
193
|
|
|
@@ -205,9 +204,4 @@ update) => sourceCode
|
|
|
205
204
|
.some((reference) => reference.isWrite() &&
|
|
206
205
|
reference.init !== true &&
|
|
207
206
|
!isWithin(reference.identifier, update));
|
|
208
|
-
const isWithin = (
|
|
209
|
-
|
|
210
|
-
node,
|
|
211
|
-
|
|
212
|
-
container) => container.range[0] <= node.range[0] && node.range[1] <= container.range[1];
|
|
213
207
|
//# sourceMappingURL=prefer-range-for-loop.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-range-for-loop.mjs","sourceRoot":"","sources":["../../src/rules/prefer-range-for-loop.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,QAAQ,GAGT,MAAM,0BAA0B,CAAC;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"prefer-range-for-loop.mjs","sourceRoot":"","sources":["../../src/rules/prefer-range-for-loop.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,QAAQ,GAGT,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAM1D,MAAM,CAAC,MAAM,kBAAkB,GAA6C;IAC1E,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,2GAA2G;SAC9G;QACD,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,eAAe,EACb,yFAAyF;SAC5F;QACD,cAAc,EAAE,EAAE;KACnB;IAED,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;QAClB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAEtC;;;;;WAKG;QACH,MAAM,aAAa,GAAG;QACpB,8EAA8E;QAC9E,OAAsB,EACb,EAAE;YACX,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAEvC,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC;gBACzC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;gBAC5C,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CACpC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EACzB,IAAI,CAAC,IAAI,CACV,CAAC;YAEF,OAAO,CACL,QAAQ,KAAK,IAAI;gBACjB,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;gBACxB,QAAQ,CAAC,UAAU,CAAC,KAAK,CACvB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,CAC/D,CACF,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,cAAc,GAOd,EAAE,CAAC;QAET,OAAO;YACL,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;gBACrB,4BAA4B;gBAC5B,IACE,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,cAAc,CAAC,mBAAmB;oBACtD,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK;oBACxB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAClD,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAE9C,IACE,WAAW,CAAC,EAAE,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;oBACjD,WAAW,CAAC,IAAI,KAAK,IAAI,EACzB,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC;gBAEpC,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC;gBAEnC,oCAAoC;gBACpC,IAAI,yBAAyB,CAAC,SAAS,CAAC,EAAE,CAAC;oBACzC,OAAO;gBACT,CAAC;gBAED,+DAA+D;gBAC/D,mEAAmE;gBACnE,uCAAuC;gBACvC,IACE,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,cAAc,CAAC,gBAAgB;oBACnD,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,GAAG,EAC1B,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAExD,IACE,cAAc,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;oBACjD,cAAc,CAAC,IAAI,KAAK,OAAO,EAC/B,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAEhC,+CAA+C;gBAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBACzB,OAAO;gBACT,CAAC;gBAED,IAAI,QAA4B,CAAC;gBAEjC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB,EAAE,CAAC;oBACzD,aAAa;oBACb,IACE,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI;wBAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;wBACvD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EACrC,CAAC;wBACD,QAAQ,GAAG,SAAS,CAAC,CAAC,qBAAqB;oBAC7C,CAAC;yBAAM,CAAC;wBACN,OAAO;oBACT,CAAC;gBACH,CAAC;qBAAM,IACL,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,oBAAoB;oBACxD,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI;oBAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;oBACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EACjC,CAAC;oBACD,YAAY;oBACZ,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAEtD,IAAI,SAAS,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC;wBAC9C,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC;wBAEhC,sCAAsC;wBACtC,IACE,OAAO,OAAO,KAAK,QAAQ;4BAC3B,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;4BAC7B,OAAO,GAAG,CAAC,EACX,CAAC;4BACD,QAAQ,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;wBAC5D,CAAC;6BAAM,CAAC;4BACN,OAAO;wBACT,CAAC;oBACH,CAAC;yBAAM,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;wBACvC,iEAAiE;wBACjE,8DAA8D;wBAC9D,aAAa;wBACb,OAAO;oBACT,CAAC;yBAAM,CAAC;wBACN,6DAA6D;wBAC7D,gEAAgE;wBAChE,8CAA8C;wBAC9C,QAAQ,GAAG,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO;gBACT,CAAC;gBAED,kEAAkE;gBAClE,IAAI,uBAAuB,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClE,OAAO;gBACT,CAAC;gBAED,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;gBAEzD,MAAM,OAAO,GAAG,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAErD,cAAc,CAAC,IAAI,CAAC;oBAClB,IAAI;oBACJ,OAAO;oBACP,KAAK,EAAE,SAAS;oBAChB,GAAG,EAAE,OAAO;oBACZ,IAAI,EAAE,QAAQ;oBACd,OAAO,EACL,aAAa,CAAC,OAAO,CAAC;wBACtB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,oBAAoB;4BACvD,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACtC,CAAC,CAAC;YACL,CAAC;YACD,cAAc,EAAE,GAAG,EAAE;gBACnB,MAAM,OAAO,GAAG,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAExD,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;oBACnC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;oBAElD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAExD,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;wBACvB,SAAS,EAAE,iBAAiB;wBAC5B,IAAI,EAAE;4BACJ,OAAO;4BACP,KAAK;4BACL,GAAG;yBACJ;wBACD,GAAG,EACD,KAAK,KAAK,SAAS;4BACjB,CAAC,CAAC,SAAS;4BACX,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gCACR,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCAE/C,MAAM,SAAS,GACb,IAAI,KAAK,SAAS;oCAChB,CAAC,CAAC,GAAG,KAAK,KAAK,GAAG,EAAE;oCACpB,CAAC,CAAC,GAAG,KAAK,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;gCAElC,MAAM,WAAW,GAAG,cAAc,OAAO,OAAO,KAAK,CAAC,SAAS,IAAI,SAAS,MAAM,QAAQ,EAAE,CAAC;gCAE7F,OAAO;oCACL,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;oCACrB,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC;iCACrC,CAAC;4BACJ,CAAC;qBACR,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACO,CAAC;AAEX,MAAM,gBAAgB,GAAG;AACvB,8EAA8E;AAC9E,IAAmB,EACV,EAAE,CACX,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe;IAC5C,IAAI,CAAC,QAAQ,KAAK,GAAG;IACrB,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO,CAAC;AAElE,MAAM,yBAAyB,GAAG;AAChC,8EAA8E;AAC9E,OAAsB,EACb,EAAE;IACX,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAEvC,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO;QACpC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QAC9B,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAClC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG;AACf,8EAA8E;AAC9E,IAAmB;AACnB,8EAA8E;AAC9E,SAAwB,EACf,EAAE,CACX,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAE7E;;;GAGG;AACH,MAAM,uBAAuB,GAAG;AAC9B,8EAA8E;AAC9E,UAA+B;AAC/B,8EAA8E;AAC9E,WAAwC;AACxC,8EAA8E;AAC9E,MAA2B,EAClB,EAAE,CACX,UAAU;KACP,oBAAoB,CAAC,WAAW,CAAC;KACjC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;KAC1C,IAAI,CACH,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,OAAO,EAAE;IACnB,SAAS,CAAC,IAAI,KAAK,IAAI;IACvB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAC1C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-ts-data-forge",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.6",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "ESLint rules that steer code toward ts-data-forge idioms.",
|
|
6
6
|
"keywords": [
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
],
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@typescript-eslint/utils": "^8.72.0",
|
|
38
|
-
"eslint-rule-forge": "^0.
|
|
38
|
+
"eslint-rule-forge": "^0.4.0",
|
|
39
39
|
"ts-data-forge": "14.10.0",
|
|
40
40
|
"ts-type-forge": "~9.2.2"
|
|
41
41
|
},
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
"@typescript-eslint/parser": "8.72.0",
|
|
44
44
|
"@typescript-eslint/rule-tester": "8.72.0",
|
|
45
45
|
"dedent": "1.7.2",
|
|
46
|
-
"eslint-config-typed": "
|
|
47
|
-
"eslint-plugin-ts-fortress": "1.3.
|
|
48
|
-
"eslint-plugin-ts-type-forge": "0.8.
|
|
46
|
+
"eslint-config-typed": "7.2.1",
|
|
47
|
+
"eslint-plugin-ts-fortress": "1.3.11",
|
|
48
|
+
"eslint-plugin-ts-type-forge": "0.8.16",
|
|
49
49
|
"prettier": "3.9.10",
|
|
50
50
|
"prettier-plugin-organize-imports": "4.3.0",
|
|
51
51
|
"prettier-plugin-packagejson": "3.0.2",
|
package/src/rules/ast-utils.mts
CHANGED
|
@@ -11,11 +11,6 @@ import {
|
|
|
11
11
|
} from 'eslint-rule-forge';
|
|
12
12
|
import type { DeepReadonly } from 'ts-type-forge';
|
|
13
13
|
|
|
14
|
-
const isIntegerLiteral = (node: DeepReadonly<TSESTree.Expression>): boolean =>
|
|
15
|
-
node.type === AST_NODE_TYPES.Literal &&
|
|
16
|
-
typeof node.value === 'number' &&
|
|
17
|
-
Number.isInteger(node.value);
|
|
18
|
-
|
|
19
14
|
/**
|
|
20
15
|
* Whether `node` is an array or a tuple at every layer of type wrappers (see
|
|
21
16
|
* {@link typeWrapperLayers}): a cast does not make a string an array, and the
|
|
@@ -134,12 +129,6 @@ export const isSameArrayText = (
|
|
|
134
129
|
sourceCode.getText(skipTypeWrappers(a)) ===
|
|
135
130
|
sourceCode.getText(skipTypeWrappers(b));
|
|
136
131
|
|
|
137
|
-
type LengthComparison = Readonly<{
|
|
138
|
-
array: TSESTree.Expression;
|
|
139
|
-
bound: TSESTree.Expression;
|
|
140
|
-
kind: 'max' | 'min';
|
|
141
|
-
}>;
|
|
142
|
-
|
|
143
132
|
/**
|
|
144
133
|
* Parses a `<array>.length <op> <bound>` comparison (in either operand order)
|
|
145
134
|
* into its array expression, integer-literal/`const` `bound`, and whether it is
|
|
@@ -244,6 +233,17 @@ export const isPartOfBoundedLengthCheck = (
|
|
|
244
233
|
);
|
|
245
234
|
};
|
|
246
235
|
|
|
236
|
+
const isIntegerLiteral = (node: DeepReadonly<TSESTree.Expression>): boolean =>
|
|
237
|
+
node.type === AST_NODE_TYPES.Literal &&
|
|
238
|
+
typeof node.value === 'number' &&
|
|
239
|
+
Number.isInteger(node.value);
|
|
240
|
+
|
|
241
|
+
type LengthComparison = Readonly<{
|
|
242
|
+
array: TSESTree.Expression;
|
|
243
|
+
bound: TSESTree.Expression;
|
|
244
|
+
kind: 'max' | 'min';
|
|
245
|
+
}>;
|
|
246
|
+
|
|
247
247
|
/** The outermost of the type wrappers around `node`, or `node` itself. */
|
|
248
248
|
const outermostTypeWrapper = (
|
|
249
249
|
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type { TSESLint, TSESTree } from '@typescript-eslint/utils';
|
|
2
|
+
import {
|
|
3
|
+
bindValueImports,
|
|
4
|
+
hasForeignBinding,
|
|
5
|
+
type ValueImportBinding,
|
|
6
|
+
} from 'eslint-rule-forge';
|
|
7
|
+
import { memoizeFunction } from 'ts-data-forge';
|
|
8
|
+
import { TS_DATA_FORGE_MODULE } from './constants.mjs';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Binds ts-data-forge's `exportName` as a value once per file (see
|
|
12
|
+
* `bindValueImports`), and gives, for the code at a node, the name a fix
|
|
13
|
+
* writes and the edits that bring it into scope, or `undefined` when no fix
|
|
14
|
+
* can: an import already binds the name to something else, or something other
|
|
15
|
+
* than the import takes it where the code is.
|
|
16
|
+
*
|
|
17
|
+
* Every fix that writes the name makes these edits itself, so that one applied
|
|
18
|
+
* alone (an editor's quick fix) is complete; `--fix` then takes one pass per
|
|
19
|
+
* report that adds the import.
|
|
20
|
+
*/
|
|
21
|
+
export const tsDataForgeValueAt = (
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
23
|
+
sourceCode: TSESLint.SourceCode,
|
|
24
|
+
exportName: string,
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
26
|
+
): ((node: TSESTree.Node) => TsDataForgeValue | undefined) => {
|
|
27
|
+
const { at } = tsDataForgeValuesAt(sourceCode, [exportName]);
|
|
28
|
+
|
|
29
|
+
return (node) => {
|
|
30
|
+
const binding = at(node);
|
|
31
|
+
|
|
32
|
+
const localName = binding?.localNames[0];
|
|
33
|
+
|
|
34
|
+
return binding === undefined || localName === undefined
|
|
35
|
+
? undefined
|
|
36
|
+
: { localName, edits: binding.edits };
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* {@link tsDataForgeValueAt} for a name that varies from report to report (a
|
|
42
|
+
* cast function, a replacement guard): each name is bound once per file,
|
|
43
|
+
* however many reports write it.
|
|
44
|
+
*/
|
|
45
|
+
export const tsDataForgeValueAtByName = (
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
47
|
+
sourceCode: TSESLint.SourceCode,
|
|
48
|
+
): ((exportName: string) => ReturnType<typeof tsDataForgeValueAt>) =>
|
|
49
|
+
memoizeFunction(
|
|
50
|
+
(exportName: string) => tsDataForgeValueAt(sourceCode, exportName),
|
|
51
|
+
(exportName) => exportName,
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* {@link tsDataForgeValueAt} for several names one fix writes together: their
|
|
56
|
+
* edits are made as one, so that two names the file does not import go into a
|
|
57
|
+
* single new declaration. `localNames` are the names to write, known before
|
|
58
|
+
* any node is: the export names themselves when they cannot be bound.
|
|
59
|
+
*/
|
|
60
|
+
export const tsDataForgeValuesAt = (
|
|
61
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
62
|
+
sourceCode: TSESLint.SourceCode,
|
|
63
|
+
exportNames: readonly string[],
|
|
64
|
+
): Readonly<{
|
|
65
|
+
localNames: readonly string[];
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
67
|
+
at: (node: TSESTree.Node) => ValueImportBinding | undefined;
|
|
68
|
+
}> => {
|
|
69
|
+
const binding = bindValueImports(
|
|
70
|
+
sourceCode,
|
|
71
|
+
TS_DATA_FORGE_MODULE,
|
|
72
|
+
exportNames,
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
return {
|
|
76
|
+
localNames: binding?.localNames ?? exportNames,
|
|
77
|
+
at: (node) =>
|
|
78
|
+
binding === undefined ||
|
|
79
|
+
binding.localNames.some((localName) =>
|
|
80
|
+
hasForeignBinding(sourceCode, node, localName, TS_DATA_FORGE_MODULE),
|
|
81
|
+
)
|
|
82
|
+
? undefined
|
|
83
|
+
: binding,
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
/** What {@link tsDataForgeValueAt} gives for one node. */
|
|
88
|
+
export type TsDataForgeValue = Readonly<{
|
|
89
|
+
/** The name to write. */
|
|
90
|
+
localName: string;
|
|
91
|
+
|
|
92
|
+
/** The edits that bind it. */
|
|
93
|
+
edits: ValueImportBinding['edits'];
|
|
94
|
+
}>;
|