diff --git a/packages/definitions-parser/src/lib/module-info.ts b/packages/definitions-parser/src/lib/module-info.ts index c4b6d08926..458f3ed1ab 100644 --- a/packages/definitions-parser/src/lib/module-info.ts +++ b/packages/definitions-parser/src/lib/module-info.ts @@ -225,8 +225,7 @@ function findReferencedFiles(src: ts.SourceFile, packageName: string, subDirecto addReference({ text: ref.fileName, exact: true }); } for (const ref of src.typeReferenceDirectives) { - // only references are local (or "packagename/x", though in 3.7 that doesn't work in DT). - if (ref.fileName.startsWith("../" + packageName + "/")) { + if (ref.fileName.startsWith(".")) { addReference({ text: ref.fileName, exact: false }); } else if (ref.fileName.startsWith(packageName + "/")) { addReference({ text: convertToRelativeReference(ref.fileName), exact: false }); diff --git a/packages/definitions-parser/test/module-info.test.ts b/packages/definitions-parser/test/module-info.test.ts index 0acc8c7386..608883fbb5 100644 --- a/packages/definitions-parser/test/module-info.test.ts +++ b/packages/definitions-parser/test/module-info.test.ts @@ -75,6 +75,19 @@ testo({ expect(Array.from(types.keys())).toEqual(["index.d.ts", "types.d.ts"]); expect(Array.from(tests.keys())).toEqual([]); }, + allReferencedFilesIncludesRelativeTypeReferences() { + const pkg = new Dir(undefined); + pkg.set( + "mock-tests.ts", + `/// +` + ); + pkg.set("addon.pdf.d.ts", ""); + const memFS = new InMemoryFS(pkg, "types/mock"); + const { types, tests } = allReferencedFiles(["mock-tests.ts"], memFS, "mock", "types/mock"); + expect(Array.from(types.keys())).toEqual(["addon.pdf.d.ts"]); + expect(Array.from(tests.keys())).toEqual(["mock-tests.ts"]); + }, getModuleInfoWorksWithOtherFiles() { const { types } = getBoringReferences(); // written as if it were from OTHER_FILES.txt