From 6ac816ec6ee13d2505579aee6074a1070360ee92 Mon Sep 17 00:00:00 2001 From: Danil Somsikov Date: Fri, 11 Oct 2024 21:29:58 +0200 Subject: [PATCH 1/2] Also ignore value imports if all bindings are types --- .../parser/dependencies/parse-dependencies.ts | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/packages/lit-analyzer/src/test/parser/dependencies/parse-dependencies.ts b/packages/lit-analyzer/src/test/parser/dependencies/parse-dependencies.ts index 6f3d82ac..b3ad022a 100644 --- a/packages/lit-analyzer/src/test/parser/dependencies/parse-dependencies.ts +++ b/packages/lit-analyzer/src/test/parser/dependencies/parse-dependencies.ts @@ -300,6 +300,26 @@ tsTest("Ignores type-only imports in a file", t => { t.deepEqual(sortedFileNames, ["file2.ts"]); }); +tsTest("Ignores imports with type-only bindings in a file", t => { + const { sourceFile, context } = prepareAnalyzer([ + { fileName: "file1.ts", text: `` }, + { + fileName: "file2.ts", + text: ` + import { type MyElement } from "./file1"; + `, + entry: true + } + ]); + + const dependencies = parseAllIndirectImports(sourceFile, context); + + const sortedFileNames = Array.from(dependencies) + .map(file => file.fileName) + .sort(); + + t.deepEqual(sortedFileNames, ["file2.ts"]); +}); tsTest("Ignores type-only exports in a file", t => { const { sourceFile, context } = prepareAnalyzer([ From 5db7d31ba0f6627c32f180533fd142f19a17448e Mon Sep 17 00:00:00 2001 From: Danil Somsikov Date: Fri, 11 Oct 2024 21:32:08 +0200 Subject: [PATCH 2/2] Update visit-dependencies.ts --- .../analyze/parse/parse-dependencies/visit-dependencies.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/lit-analyzer/src/lib/analyze/parse/parse-dependencies/visit-dependencies.ts b/packages/lit-analyzer/src/lib/analyze/parse/parse-dependencies/visit-dependencies.ts index 9c0faa72..1803808c 100644 --- a/packages/lit-analyzer/src/lib/analyze/parse/parse-dependencies/visit-dependencies.ts +++ b/packages/lit-analyzer/src/lib/analyze/parse/parse-dependencies/visit-dependencies.ts @@ -118,7 +118,9 @@ function visitDirectImports(node: Node, context: IVisitDependenciesContext): voi /*if (("importClause" in node && node.importClause != null) || ("exportClause" in node && node.exportClause != null)) { return; }*/ - + if (node.importClause?.namedBindings?.elements && node.importClause.namedBindings.elements.every(e=>e.isTypeOnly)) { + return; + } emitDirectModuleImportWithName(node.moduleSpecifier.text, node, context); } }