Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
refactor ResolveRecurse into ResolveMain
  • Loading branch information
guybedford authored and MylesBorins committed Aug 9, 2018
commit cc6140e181ad16646f1ad2bce1b6941130c4638e
47 changes: 14 additions & 33 deletions src/module_wrap.cc
Original file line number Diff line number Diff line change
Expand Up @@ -595,10 +595,20 @@ Maybe<URL> ResolveMain(Environment* env, const URL& search) {
pjson.has_main == HasMain::No) {
return Nothing<URL>();
}
if (!ShouldBeTreatedAsRelativeOrAbsolutePath(pjson.main)) {
return ResolveRecurse(env, "./" + pjson.main, search, IgnoreMain);

URL resolved;
if (ShouldBeTreatedAsRelativeOrAbsolutePath(pjson.main)) {
resolved = URL(pjson.main, search);
} else {
resolved = URL("./" + pjson.main, search);
}
return ResolveRecurse(env, pjson.main, search, IgnoreMain);
Maybe<URL> file = ResolveExtensions<TRY_EXACT_NAME>(resolved);
if (!file.IsNothing())
return file;
if (specifier.back() != '/') {
resolved = URL(specifier + "/", search);
}
return ResolveIndex(resolved);
}

Maybe<URL> ResolveModule(Environment* env,
Expand All @@ -609,7 +619,7 @@ Maybe<URL> ResolveModule(Environment* env,
do {
dir = parent;
Maybe<URL> check =
ResolveRecurse(env, "./node_modules/" + specifier, dir, CheckMain);
Resolve(env, "./node_modules/" + specifier, dir, CheckMain);
if (!check.IsNothing()) {
const size_t limit = specifier.find('/');
const size_t spec_len =
Expand All @@ -629,37 +639,8 @@ Maybe<URL> ResolveModule(Environment* env,
return Nothing<URL>();
}

Maybe<URL> ResolveDirectory(Environment* env,
const URL& search,
PackageMainCheck check_pjson_main) {
if (check_pjson_main) {
Maybe<URL> main = ResolveMain(env, search);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems this is never called now.

This is likely my fault - rushed the refactoring a bit last time. Will take another look.

if (!main.IsNothing())
return main;
}
return ResolveIndex(search);
}

} // anonymous namespace

Maybe<URL> ResolveRecurse(Environment* env,
const std::string& specifier,
const URL& base,
PackageMainCheck check_pjson_main) {
if (ShouldBeTreatedAsRelativeOrAbsolutePath(specifier)) {
URL resolved(specifier, base);
Maybe<URL> file = ResolveExtensions<TRY_EXACT_NAME>(resolved);
if (!file.IsNothing())
return file;
if (specifier.back() != '/') {
resolved = URL(specifier + "/", base);
}
return ResolveDirectory(env, resolved, check_pjson_main);
} else {
return ResolveModule(env, specifier, base);
}
}

Maybe<URL> Resolve(Environment* env,
const std::string& specifier,
const URL& base) {
Expand Down
10 changes: 0 additions & 10 deletions src/module_wrap.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,6 @@
namespace node {
namespace loader {

enum PackageMainCheck : bool {
CheckMain = true,
IgnoreMain = false
};

v8::Maybe<url::URL> ResolveRecurse(Environment* env,
const std::string& specifier,
const url::URL& base,
PackageMainCheck read_pkg_json = CheckMain);

v8::Maybe<url::URL> Resolve(Environment* env,
const std::string& specifier,
const url::URL& base);
Expand Down