Skip to content

Commit 43e4ed1

Browse files
author
Max Schaefer
committed
JavaScript: Teach resolveMainModule to try adding extensions.
1 parent e21c24c commit 43e4ed1

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

javascript/ql/src/semmle/javascript/NodeModuleResolutionImpl.qll

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,16 @@ File tryExtensions(Folder dir, string basename, int priority) {
8484
File resolveMainModule(PackageJSON pkg, int priority) {
8585
if exists(MainModulePath::of(pkg))
8686
then
87-
exists(Container c | c = MainModulePath::of(pkg).resolve() |
88-
result = c and priority = 0
87+
exists(PathExpr main | main = MainModulePath::of(pkg) |
88+
result = main.resolve() and priority = 0
8989
or
90-
result = tryExtensions(c, "index", priority)
90+
result = tryExtensions(main.resolve(), "index", priority)
91+
or
92+
not exists(main.resolve()) and
93+
not exists(main.getExtension()) and
94+
exists(int n | n = main.getNumComponent() |
95+
result = tryExtensions(main.resolveUpTo(n-1), main.getComponent(n-1), priority)
96+
)
9197
)
9298
else result = tryExtensions(pkg.getFile().getParentContainer(), "index", priority)
9399
}

0 commit comments

Comments
 (0)