From 261e91740f38a1f0bfc26a5a850c3410f4815d48 Mon Sep 17 00:00:00 2001 From: Jack Bates Date: Tue, 21 Apr 2020 13:36:43 -0700 Subject: [PATCH 1/2] Handle local references in scoped packages --- packages/definitions-parser/src/lib/module-info.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/definitions-parser/src/lib/module-info.ts b/packages/definitions-parser/src/lib/module-info.ts index 6e9b5f1abf..5a63150f2d 100644 --- a/packages/definitions-parser/src/lib/module-info.ts +++ b/packages/definitions-parser/src/lib/module-info.ts @@ -4,6 +4,7 @@ import * as ts from "typescript"; import { sort, joinPaths, FS, normalizeSlashes, hasWindowsSlashes } from "@definitelytyped/utils"; import { readFileAndThrowOnBOM } from "./definition-parser"; +import { getMangledNameForScopedPackage } from "../packages"; export function getModuleInfo(packageName: string, all: Map): ModuleInfo { const dependencies = new Set(); @@ -232,8 +233,7 @@ function findReferencedFiles(src: ts.SourceFile, packageName: string, subDirecto for (const ref of imports(src)) { if (ref.startsWith(".")) { addReference({ text: ref, exact: false }); - } - if (ref.startsWith(packageName + "/")) { + } else if (getMangledNameForScopedPackage(ref).startsWith(packageName + "/")) { addReference({ text: convertToRelativeReference(ref), exact: false }); } } From e9c232f63c68b321750ae522d823b0264ba49867 Mon Sep 17 00:00:00 2001 From: Jack Bates Date: Thu, 27 Aug 2020 09:29:36 -0700 Subject: [PATCH 2/2] Add tests --- .../test/module-info.test.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/definitions-parser/test/module-info.test.ts b/packages/definitions-parser/test/module-info.test.ts index 62797f9276..b49b0d70fb 100644 --- a/packages/definitions-parser/test/module-info.test.ts +++ b/packages/definitions-parser/test/module-info.test.ts @@ -128,6 +128,24 @@ testo({ const i = getModuleInfo("fail", types); expect(i.dependencies).toEqual(new Set([])); }, + selfInScopedPackage() { + const scoped = new Dir(undefined); + scoped.set( + "index.d.ts", + `import "@rdfjs/to-ntriples/component"; +` + ); + scoped.set("component.d.ts", ""); + const memFS = new InMemoryFS(scoped, "types/rdfjs__to-ntriples"); + const { types, tests } = allReferencedFiles( + ["index.d.ts"], + memFS, + "rdfjs__to-ntriples", + "types/rdfjs__to-ntriples" + ); + expect(Array.from(types.keys())).toEqual(["index.d.ts", "component.d.ts"]); + expect(Array.from(tests.keys())).toEqual([]); + }, getTestDependenciesWorks() { const { types, tests } = getBoringReferences(); const i = getModuleInfo("boring", types);