Skip to content

Commit b9ffef4

Browse files
committedNov 10, 2024
Filter out external refs to re-exports
1 parent 9a78e33 commit b9ffef4

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed
 

Diff for: ‎packages/knip/src/ProjectPrincipal.ts

+10-1
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,16 @@ export class ProjectPrincipal {
338338

339339
const externalRefs = referencedSymbols
340340
.flatMap(refs => refs.references)
341-
.filter(ref => !ref.isDefinition && ref.fileName !== filePath);
341+
.filter(ref => !ref.isDefinition && ref.fileName !== filePath)
342+
.filter(ref => {
343+
// Filter out are re-exports
344+
const sourceFile = this.backend.program?.getSourceFile(ref.fileName);
345+
if (!sourceFile) return true;
346+
// @ts-expect-error ts.getTokenAtPosition is internal fn
347+
const node = ts.getTokenAtPosition(sourceFile, ref.textSpan.start);
348+
if (!node?.parent?.parent?.parent) return true;
349+
return !(ts.isExportSpecifier(node.parent) && node.parent.parent.parent.moduleSpecifier);
350+
});
342351

343352
return externalRefs.length > 0;
344353
}

0 commit comments

Comments
 (0)
Please sign in to comment.