Skip to content

Commit 566d11c

Browse files
committed
Housekeep isInForIteration heuristic
1 parent fbaec01 commit 566d11c

File tree

4 files changed

+6
-22
lines changed

4 files changed

+6
-22
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,3 @@
11
{
2-
"name": "@fixtures/import-star-iteration",
3-
"devDependencies": {
4-
"ts-node": "^10.8.2"
5-
},
6-
"scripts": {
7-
"execute-test-code": "ts-node index.ts"
8-
},
9-
"knip": {
10-
"ignoreBinaries": [
11-
"ts-node"
12-
],
13-
"ignoreDependencies": [
14-
"ts-node"
15-
]
16-
}
2+
"name": "@fixtures/import-star-iteration"
173
}

packages/knip/src/typescript/ast-helpers.ts

+3-5
Original file line numberDiff line numberDiff line change
@@ -165,11 +165,6 @@ export const isDestructuring = (node: ts.Node) =>
165165
ts.isVariableDeclarationList(node.parent.parent) &&
166166
ts.isObjectBindingPattern(node.parent.name);
167167

168-
// Pattern: for (const x in NS) { }
169-
// Pattern: for (const x of NS) { }
170-
export const isIteratingObject = (node: ts.Node) =>
171-
node.parent && (ts.isForInStatement(node.parent) || ts.isForOfStatement(node.parent));
172-
173168
export const getDestructuredIds = (name: ts.ObjectBindingPattern) =>
174169
name.elements.map(element => element.name.getText());
175170

@@ -192,6 +187,9 @@ export const isObjectEnumerationCallExpressionArgument = (node: ts.Identifier) =
192187
node.parent.expression.expression.escapedText === 'Object' &&
193188
objectEnumerationMethods.has(String(node.parent.expression.name.escapedText));
194189

190+
export const isInForIteration = (node: ts.Node) =>
191+
node.parent && (ts.isForInStatement(node.parent) || ts.isForOfStatement(node.parent));
192+
195193
export const isTopLevel = (node: ts.Node) =>
196194
ts.isSourceFile(node.parent) || (node.parent && ts.isSourceFile(node.parent.parent));
197195

packages/knip/src/typescript/get-imports-and-exports.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import {
2222
isConsiderReferencedNS,
2323
isDestructuring,
2424
isImportSpecifier,
25-
isIteratingObject,
25+
isInForIteration,
2626
isObjectEnumerationCallExpressionArgument,
2727
isReferencedInExport,
2828
} from './ast-helpers.js';
@@ -354,7 +354,7 @@ const getImportsAndExports = (
354354
} else if (isObjectEnumerationCallExpressionArgument(node)) {
355355
// Pattern: Object.keys(NS)
356356
imports.refs.add(id);
357-
} else if (isIteratingObject(node)) {
357+
} else if (isInForIteration(node)) {
358358
// Pattern: for (const x in NS) { }
359359
// Pattern: for (const x of NS) { }
360360
imports.refs.add(id);

0 commit comments

Comments
 (0)