Skip to content

Commit c852c62

Browse files
committed
JS: Try to guess the main file if only a .d.ts file was found
1 parent fb987e7 commit c852c62

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

javascript/ql/lib/semmle/javascript/internal/paths/PackageJsonEx.qll

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,9 @@ class PackageJsonEx extends PackageJson {
5555
File getMainFileOrBestGuess() {
5656
result = this.getMainFile()
5757
or
58-
not exists(this.getMainFile()) and
59-
(
60-
result = guessPackageJsonMain1(this)
61-
or
62-
result = guessPackageJsonMain2(this)
63-
)
58+
result = guessPackageJsonMain1(this)
59+
or
60+
result = guessPackageJsonMain2(this)
6461
}
6562

6663
string getAPathInFilesArray() {
@@ -116,8 +113,10 @@ private module Resolver = Folder::Resolve<ResolverConfig>;
116113
bindingset[name]
117114
private string stripPackageScope(string name) { result = name.regexpReplaceAll("^@[^/]+/", "") }
118115

116+
private predicate isImplementationFile(File f) { not f.getBaseName().matches("%.d.ts") }
117+
119118
File guessPackageJsonMain1(PackageJsonEx pkg) {
120-
not exists(pkg.getMainFile()) and
119+
not isImplementationFile(pkg.getMainFile()) and
121120
exists(Folder folder, Folder subfolder |
122121
folder = pkg.getFolder() and
123122
(
@@ -137,7 +136,7 @@ File guessPackageJsonMain1(PackageJsonEx pkg) {
137136
}
138137

139138
File guessPackageJsonMain2(PackageJsonEx pkg) {
140-
not exists(pkg.getMainFile()) and
141-
not exists(guessPackageJsonMain1(pkg)) and
139+
not isImplementationFile(pkg.getMainFile()) and
140+
not isImplementationFile(guessPackageJsonMain1(pkg)) and
142141
result = pkg.getAFileInFilesArray()
143142
}

0 commit comments

Comments
 (0)