summaryrefslogtreecommitdiff
path: root/lib/module.js
diff options
context:
space:
mode:
authorBradley Farias <bradley.meck@gmail.com>2017-08-24 09:59:52 -0500
committerRuben Bridgewater <ruben@bridgewater.de>2018-03-11 02:56:56 +0100
commit1ed36aeb53266f8f01e1cd442069024d258f632a (patch)
treeb1a2e6e6890898587442d843f490711f5da66775 /lib/module.js
parent8b69d4aca9a89db1e986ce137ff67f4b8bf8803f (diff)
downloadandroid-node-v8-1ed36aeb53266f8f01e1cd442069024d258f632a.tar.gz
android-node-v8-1ed36aeb53266f8f01e1cd442069024d258f632a.tar.bz2
android-node-v8-1ed36aeb53266f8f01e1cd442069024d258f632a.zip
module: check file ext before dir as documented
The documented resolution algorithm started to search for package.json files prior to searching for file extensions when searching for a specifier. Oddly, it did not search for index files at same time it searched for package.json. This restores the documented behavior of searching for file extensions prior to searching directories. PR-URL: https://github.com/nodejs/node/pull/15015 Fixes: https://github.com/nodejs/node/issues/14990 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Evan Lucas <evanlucas@me.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Khaidi Chu <i@2333.moe>
Diffstat (limited to 'lib/module.js')
-rw-r--r--lib/module.js15
1 files changed, 8 insertions, 7 deletions
diff --git a/lib/module.js b/lib/module.js
index 468619f2bf..6d4e3dbfcf 100644
--- a/lib/module.js
+++ b/lib/module.js
@@ -219,6 +219,9 @@ Module._findPath = function(request, paths, isMain) {
var exts;
var trailingSlash = request.length > 0 &&
request.charCodeAt(request.length - 1) === CHAR_FORWARD_SLASH;
+ if (!trailingSlash) {
+ trailingSlash = /(?:^|\/)\.?\.$/.test(request);
+ }
// For each path
for (var i = 0; i < paths.length; i++) {
@@ -236,10 +239,6 @@ Module._findPath = function(request, paths, isMain) {
} else {
filename = toRealPath(basePath);
}
- } else if (rc === 1) { // Directory.
- if (exts === undefined)
- exts = Object.keys(Module._extensions);
- filename = tryPackage(basePath, exts, isMain);
}
if (!filename) {
@@ -251,11 +250,13 @@ Module._findPath = function(request, paths, isMain) {
}
if (!filename && rc === 1) { // Directory.
+ // try it with each of the extensions at "index"
if (exts === undefined)
exts = Object.keys(Module._extensions);
- filename = tryPackage(basePath, exts, isMain) ||
- // try it with each of the extensions at "index"
- tryExtensions(path.resolve(basePath, 'index'), exts, isMain);
+ filename = tryPackage(basePath, exts, isMain);
+ if (!filename) {
+ filename = tryExtensions(path.resolve(basePath, 'index'), exts, isMain);
+ }
}
if (filename) {