Skip to content

Commit f6edcd9

Browse files
jmmljharb
authored andcommitted
Utilize opts.filename when available to ID parent.
1 parent 96d38c6 commit f6edcd9

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

lib/async.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,21 +33,22 @@ module.exports = function resolve(x, options, callback) {
3333

3434
var extensions = opts.extensions || ['.js'];
3535
var basedir = opts.basedir || path.dirname(caller());
36+
var parent = opts.filename || basedir;
3637

3738
opts.paths = opts.paths || [];
3839

3940
if (/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(x)) {
40-
var res = path.resolve(basedir, x);
41+
var res = path.resolve(parent, x);
4142
if (x === '..' || x.slice(-1) === '/') res += '/';
42-
if (/\/$/.test(x) && res === basedir) {
43+
if (/\/$/.test(x) && res === parent) {
4344
loadAsDirectory(res, opts.package, onfile);
4445
} else loadAsFile(res, opts.package, onfile);
45-
} else loadNodeModules(x, basedir, function (err, n, pkg) {
46+
} else loadNodeModules(x, parent, function (err, n, pkg) {
4647
if (err) cb(err);
4748
else if (n) cb(null, n, pkg);
4849
else if (core[x]) return cb(null, x);
4950
else {
50-
var moduleError = new Error("Cannot find module '" + x + "' from '" + basedir + "'");
51+
var moduleError = new Error("Cannot find module '" + x + "' from '" + parent + "'");
5152
moduleError.code = 'MODULE_NOT_FOUND';
5253
cb(moduleError);
5354
}
@@ -60,7 +61,7 @@ module.exports = function resolve(x, options, callback) {
6061
if (err) cb(err);
6162
else if (d) cb(null, d, pkg);
6263
else {
63-
var moduleError = new Error("Cannot find module '" + x + "' from '" + basedir + "'");
64+
var moduleError = new Error("Cannot find module '" + x + "' from '" + parent + "'");
6465
moduleError.code = 'MODULE_NOT_FOUND';
6566
cb(moduleError);
6667
}

lib/sync.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,23 @@ module.exports = function (x, options) {
2424

2525
var extensions = opts.extensions || ['.js'];
2626
var basedir = opts.basedir || path.dirname(caller());
27+
var parent = opts.filename || basedir;
2728

2829
opts.paths = opts.paths || [];
2930

3031
if (/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(x)) {
31-
var res = path.resolve(basedir, x);
32+
var res = path.resolve(parent, x);
3233
if (x === '..' || x.slice(-1) === '/') res += '/';
3334
var m = loadAsFileSync(res) || loadAsDirectorySync(res);
3435
if (m) return m;
3536
} else {
36-
var n = loadNodeModulesSync(x, basedir);
37+
var n = loadNodeModulesSync(x, parent);
3738
if (n) return n;
3839
}
3940

4041
if (core[x]) return x;
4142

42-
var err = new Error("Cannot find module '" + x + "' from '" + basedir + "'");
43+
var err = new Error("Cannot find module '" + x + "' from '" + parent + "'");
4344
err.code = 'MODULE_NOT_FOUND';
4445
throw err;
4546

0 commit comments

Comments
 (0)