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