resolve
Advanced tools
Comparing version 1.21.0 to 1.21.1
{ | ||
"name": "resolve", | ||
"description": "resolve like require.resolve() on behalf of files asynchronously and synchronously", | ||
"version": "1.21.0", | ||
"version": "1.21.1", | ||
"repository": { | ||
@@ -32,7 +32,7 @@ "type": "git", | ||
"devDependencies": { | ||
"@ljharb/eslint-config": "^20.1.0", | ||
"@ljharb/eslint-config": "^20.2.0", | ||
"array.prototype.map": "^1.0.4", | ||
"aud": "^1.1.5", | ||
"aud": "^2.0.0", | ||
"eclint": "^2.8.1", | ||
"eslint": "^8.6.0", | ||
"eslint": "^8.7.0", | ||
"in-publish": "^2.0.1", | ||
@@ -42,3 +42,3 @@ "object-keys": "^1.1.1", | ||
"tap": "0.4.13", | ||
"tape": "^5.4.0" | ||
"tape": "^5.4.1" | ||
}, | ||
@@ -45,0 +45,0 @@ "license": "MIT", |
@@ -8,2 +8,5 @@ var path = require('path'); | ||
var requireResolveSupportsPaths = require.resolve.length > 1 | ||
&& (/^12\.[012]\./).test(process.version); // broken in v12.0-12.2, see https://github.com/nodejs/node/issues/27794 | ||
test('`./sync` entry point', function (t) { | ||
@@ -19,9 +22,25 @@ t.equal(resolve.sync, sync, '`./sync` entry point is the same as `.sync` on `main`'); | ||
resolve.sync('./foo', { basedir: dir }), | ||
path.join(dir, 'foo.js') | ||
path.join(dir, 'foo.js'), | ||
'./foo' | ||
); | ||
if (requireResolveSupportsPaths) { | ||
t.equal( | ||
resolve.sync('./foo', { basedir: dir }), | ||
require.resolve('./foo', { paths: [dir] }), | ||
'./foo: resolve.sync === require.resolve' | ||
); | ||
} | ||
t.equal( | ||
resolve.sync('./foo.js', { basedir: dir }), | ||
path.join(dir, 'foo.js') | ||
path.join(dir, 'foo.js'), | ||
'./foo.js' | ||
); | ||
if (requireResolveSupportsPaths) { | ||
t.equal( | ||
resolve.sync('./foo.js', { basedir: dir }), | ||
require.resolve('./foo.js', { paths: [dir] }), | ||
'./foo.js: resolve.sync === require.resolve' | ||
); | ||
} | ||
@@ -54,6 +73,17 @@ t.equal( | ||
var basedir = path.join(dir, 'bar'); | ||
t.equal( | ||
resolve.sync('foo', { basedir: path.join(dir, 'bar') }), | ||
path.join(dir, 'bar/node_modules/foo/index.js') | ||
resolve.sync('foo', { basedir: basedir }), | ||
path.join(dir, 'bar/node_modules/foo/index.js'), | ||
'foo in bar' | ||
); | ||
if (requireResolveSupportsPaths) { | ||
t.equal( | ||
resolve.sync('foo', { basedir: basedir }), | ||
require.resolve('foo', { paths: [basedir] }), | ||
'foo in bar: resolve.sync === require.resolve' | ||
); | ||
} | ||
t.end(); | ||
@@ -67,4 +97,13 @@ }); | ||
resolve.sync('./baz', { basedir: dir }), | ||
path.join(dir, 'baz/quux.js') | ||
path.join(dir, 'baz/quux.js'), | ||
'./baz' | ||
); | ||
if (requireResolveSupportsPaths) { | ||
t.equal( | ||
resolve.sync('./baz', { basedir: dir }), | ||
require.resolve('./baz', { paths: [dir] }), | ||
'./baz: resolve.sync === require.resolve' | ||
); | ||
} | ||
t.end(); | ||
@@ -75,2 +114,3 @@ }); | ||
var dir = path.join(__dirname, 'resolver/biz/node_modules'); | ||
t.equal( | ||
@@ -80,12 +120,36 @@ resolve.sync('./grux', { basedir: dir }), | ||
); | ||
if (requireResolveSupportsPaths) { | ||
t.equal( | ||
resolve.sync('./grux', { basedir: dir }), | ||
require.resolve('./grux', { paths: [dir] }), | ||
'./grux: resolve.sync === require.resolve' | ||
); | ||
} | ||
var tivDir = path.join(dir, 'grux'); | ||
t.equal( | ||
resolve.sync('tiv', { basedir: path.join(dir, 'grux') }), | ||
resolve.sync('tiv', { basedir: tivDir }), | ||
path.join(dir, 'tiv/index.js') | ||
); | ||
if (requireResolveSupportsPaths) { | ||
t.equal( | ||
resolve.sync('tiv', { basedir: tivDir }), | ||
require.resolve('tiv', { paths: [tivDir] }), | ||
'tiv: resolve.sync === require.resolve' | ||
); | ||
} | ||
var gruxDir = path.join(dir, 'tiv'); | ||
t.equal( | ||
resolve.sync('grux', { basedir: path.join(dir, 'tiv') }), | ||
resolve.sync('grux', { basedir: gruxDir }), | ||
path.join(dir, 'grux/index.js') | ||
); | ||
if (requireResolveSupportsPaths) { | ||
t.equal( | ||
resolve.sync('grux', { basedir: gruxDir }), | ||
require.resolve('grux', { paths: [gruxDir] }), | ||
'grux: resolve.sync === require.resolve' | ||
); | ||
} | ||
t.end(); | ||
@@ -96,2 +160,3 @@ }); | ||
var dir = path.join(__dirname, 'resolver/biz/node_modules/grux'); | ||
t.equal( | ||
@@ -101,2 +166,10 @@ resolve.sync('../grux', { basedir: dir }), | ||
); | ||
if (requireResolveSupportsPaths) { | ||
t.equal( | ||
resolve.sync('../grux', { basedir: dir }), | ||
require.resolve('../grux', { paths: [dir] }), | ||
'../grux: resolve.sync === require.resolve' | ||
); | ||
} | ||
t.end(); | ||
@@ -107,2 +180,3 @@ }); | ||
var dir = path.join(__dirname, 'resolver'); | ||
t.equal( | ||
@@ -113,3 +187,4 @@ resolve.sync('./cup', { | ||
}), | ||
path.join(dir, 'cup.coffee') | ||
path.join(dir, 'cup.coffee'), | ||
'./cup -> ./cup.coffee' | ||
); | ||
@@ -119,3 +194,4 @@ | ||
resolve.sync('./cup.coffee', { basedir: dir }), | ||
path.join(dir, 'cup.coffee') | ||
path.join(dir, 'cup.coffee'), | ||
'./cup.coffee' | ||
); | ||
@@ -130,2 +206,10 @@ | ||
if (requireResolveSupportsPaths) { | ||
t.equal( | ||
resolve.sync('./cup.coffee', { basedir: dir, extensions: ['.js', '.coffee'] }), | ||
require.resolve('./cup.coffee', { paths: [dir] }), | ||
'./cup.coffee: resolve.sync === require.resolve' | ||
); | ||
} | ||
t.end(); | ||
@@ -136,6 +220,15 @@ }); | ||
var dir = path.join(__dirname, 'resolver'); | ||
t.equal( | ||
resolve.sync('./mug', { basedir: dir }), | ||
path.join(dir, 'mug.js') | ||
path.join(dir, 'mug.js'), | ||
'./mug -> ./mug.js' | ||
); | ||
if (requireResolveSupportsPaths) { | ||
t.equal( | ||
resolve.sync('./mug', { basedir: dir }), | ||
require.resolve('./mug', { paths: [dir] }), | ||
'./mug: resolve.sync === require.resolve' | ||
); | ||
} | ||
@@ -147,3 +240,4 @@ t.equal( | ||
}), | ||
path.join(dir, 'mug.coffee') | ||
path.join(dir, 'mug.coffee'), | ||
'./mug -> ./mug.coffee' | ||
); | ||
@@ -156,3 +250,4 @@ | ||
}), | ||
path.join(dir, 'mug.js') | ||
path.join(dir, 'mug.js'), | ||
'./mug -> ./mug.js' | ||
); | ||
@@ -221,2 +316,9 @@ | ||
); | ||
if (requireResolveSupportsPaths) { | ||
t.equal( | ||
resolve.sync('./incorrect_main', { basedir: resolverDir }), | ||
require.resolve('./incorrect_main', { paths: [resolverDir] }), | ||
'./incorrect_main: resolve.sync === require.resolve' | ||
); | ||
} | ||
@@ -252,11 +354,28 @@ t.end(); | ||
var dir = path.join(__dirname, 'resolver'); | ||
var basedir = path.join(dir, 'same_names'); | ||
t.equal( | ||
resolve.sync('./foo', { basedir: path.join(dir, 'same_names') }), | ||
resolve.sync('./foo', { basedir: basedir }), | ||
path.join(dir, 'same_names/foo.js') | ||
); | ||
if (requireResolveSupportsPaths) { | ||
t.equal( | ||
resolve.sync('./foo', { basedir: basedir }), | ||
require.resolve('./foo', { paths: [basedir] }), | ||
'./foo: resolve.sync === require.resolve' | ||
); | ||
} | ||
t.equal( | ||
resolve.sync('./foo/', { basedir: path.join(dir, 'same_names') }), | ||
resolve.sync('./foo/', { basedir: basedir }), | ||
path.join(dir, 'same_names/foo/index.js') | ||
); | ||
if (requireResolveSupportsPaths) { | ||
t.equal( | ||
resolve.sync('./foo/', { basedir: basedir }), | ||
require.resolve('./foo/', { paths: [basedir] }), | ||
'./foo/: resolve.sync === require.resolve' | ||
); | ||
} | ||
t.end(); | ||
@@ -267,11 +386,31 @@ }); | ||
var dir = path.join(__dirname, 'resolver'); | ||
var basedir = path.join(dir, 'same_names/foo'); | ||
t.equal( | ||
resolve.sync('./', { basedir: path.join(dir, 'same_names/foo') }), | ||
path.join(dir, 'same_names/foo/index.js') | ||
resolve.sync('./', { basedir: basedir }), | ||
path.join(dir, 'same_names/foo/index.js'), | ||
'./' | ||
); | ||
if (requireResolveSupportsPaths) { | ||
t.equal( | ||
resolve.sync('./', { basedir: basedir }), | ||
require.resolve('./', { paths: [basedir] }), | ||
'./: resolve.sync === require.resolve' | ||
); | ||
} | ||
t.equal( | ||
resolve.sync('.', { basedir: path.join(dir, 'same_names/foo') }), | ||
path.join(dir, 'same_names/foo/index.js') | ||
resolve.sync('.', { basedir: basedir }), | ||
path.join(dir, 'same_names/foo/index.js'), | ||
'.' | ||
); | ||
if (requireResolveSupportsPaths) { | ||
t.equal( | ||
resolve.sync('.', { basedir: basedir }), | ||
require.resolve('.', { paths: [basedir] }), | ||
'.: resolve.sync === require.resolve', | ||
{ todo: true } | ||
); | ||
} | ||
t.end(); | ||
@@ -289,2 +428,8 @@ }); | ||
); | ||
st.equal( | ||
resolve.sync('./' + testFile), | ||
require.resolve('./' + testFile), | ||
'sanity check: resolve.sync === require.resolve' | ||
); | ||
st.end(); | ||
@@ -317,4 +462,16 @@ }); | ||
var start = new Date(); | ||
t.equal(resolve.sync('./resolver/dot_main'), path.join(__dirname, 'resolver/dot_main/index.js')); | ||
t.equal( | ||
resolve.sync('./resolver/dot_main'), | ||
path.join(__dirname, 'resolver/dot_main/index.js'), | ||
'./resolver/dot_main' | ||
); | ||
t.equal( | ||
resolve.sync('./resolver/dot_main'), | ||
require.resolve('./resolver/dot_main'), | ||
'./resolver/dot_main: resolve.sync === require.resolve' | ||
); | ||
t.ok(new Date() - start < 50, 'resolve.sync timedout'); | ||
t.end(); | ||
@@ -325,4 +482,15 @@ }); | ||
var start = new Date(); | ||
t.equal(resolve.sync('./resolver/dot_slash_main'), path.join(__dirname, 'resolver/dot_slash_main/index.js')); | ||
t.equal( | ||
resolve.sync('./resolver/dot_slash_main'), | ||
path.join(__dirname, 'resolver/dot_slash_main/index.js') | ||
); | ||
t.equal( | ||
resolve.sync('./resolver/dot_slash_main'), | ||
require.resolve('./resolver/dot_slash_main'), | ||
'./resolver/dot_slash_main: resolve.sync === require.resolve' | ||
); | ||
t.ok(new Date() - start < 50, 'resolve.sync timedout'); | ||
t.end(); | ||
@@ -397,2 +565,8 @@ }); | ||
t.equal( | ||
resolve.sync(__filename), | ||
require.resolve(__filename), | ||
'absolute path to this file: resolve.sync === require.resolve' | ||
); | ||
t.equal( | ||
resolve.sync(extensionless), | ||
@@ -403,2 +577,8 @@ __filename, | ||
t.equal( | ||
resolve.sync(__filename), | ||
require.resolve(__filename), | ||
'absolute path to this file: resolve.sync === require.resolve' | ||
); | ||
t.equal( | ||
resolve.sync(__filename, { basedir: process.cwd() }), | ||
@@ -408,2 +588,10 @@ __filename, | ||
); | ||
if (requireResolveSupportsPaths) { | ||
t.equal( | ||
resolve.sync(__filename, { basedir: process.cwd() }), | ||
require.resolve(__filename, { paths: [process.cwd()] }), | ||
'absolute path to this file + basedir: resolve.sync === require.resolve' | ||
); | ||
} | ||
t.equal( | ||
@@ -414,2 +602,9 @@ resolve.sync(extensionless, { basedir: process.cwd() }), | ||
); | ||
if (requireResolveSupportsPaths) { | ||
t.equal( | ||
resolve.sync(extensionless, { basedir: process.cwd() }), | ||
require.resolve(extensionless, { paths: [process.cwd()] }), | ||
'extensionless absolute path to this file + basedir: resolve.sync === require.resolve' | ||
); | ||
} | ||
@@ -420,3 +615,3 @@ t.end(); | ||
test('malformed package.json', function (t) { | ||
t.plan(5); | ||
t.plan(5 + (requireResolveSupportsPaths ? 1 : 0)); | ||
@@ -431,2 +626,9 @@ var basedir = path.join(__dirname, 'resolver/malformed_package_json'); | ||
); | ||
if (requireResolveSupportsPaths) { | ||
t.equal( | ||
resolve.sync('./index.js', { basedir: basedir }), | ||
require.resolve('./index.js', { paths: [basedir] }), | ||
'malformed package.json: resolve.sync === require.resolve' | ||
); | ||
} | ||
@@ -433,0 +635,0 @@ var res1 = resolve.sync( |
Sorry, the diff of this file is not supported yet
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
134277
2966
16