diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-08-14 05:01:11 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-08-14 05:02:09 +0200 |
commit | 363723fc84f7b8477592e0105aeb331ec9a017af (patch) | |
tree | 29f92724f34131bac64d6a318dd7e30612e631c7 /node_modules/resolve | |
parent | 5634e77ad96bfe1818f6b6ee70b7379652e5487f (diff) |
node_modules
Diffstat (limited to 'node_modules/resolve')
19 files changed, 177 insertions, 13 deletions
diff --git a/node_modules/resolve/.editorconfig b/node_modules/resolve/.editorconfig new file mode 100644 index 000000000..ac29adef0 --- /dev/null +++ b/node_modules/resolve/.editorconfig @@ -0,0 +1,20 @@ +root = true + +[*] +indent_style = tab +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +max_line_length = 120 + +[CHANGELOG.md] +indent_style = space +indent_size = 2 + +[*.json] +max_line_length = off + +[Makefile] +max_line_length = off diff --git a/node_modules/resolve/.eslintrc b/node_modules/resolve/.eslintrc index ae352e2e2..9db19a4f8 100644 --- a/node_modules/resolve/.eslintrc +++ b/node_modules/resolve/.eslintrc @@ -2,11 +2,14 @@ "extends": "@ljharb", "root": true, "rules": { + "array-bracket-newline": 0, + "array-element-newline": 0, "indent": [2, 4], "strict": 0, "complexity": 0, "consistent-return": 0, "curly": 0, + "dot-notation": [2, { "allowKeywords": true }], "func-name-matching": 0, "func-style": 0, "global-require": 0, diff --git a/node_modules/resolve/.npmignore b/node_modules/resolve/.npmignore index 3c3629e64..f83345172 100644 --- a/node_modules/resolve/.npmignore +++ b/node_modules/resolve/.npmignore @@ -1 +1,7 @@ +# gitignore node_modules + +# Only apps should have lockfiles +npm-shrinkwrap.json +package-lock.json +yarn.lock diff --git a/node_modules/resolve/.travis.yml b/node_modules/resolve/.travis.yml index f5450af3f..25709b3d6 100644 --- a/node_modules/resolve/.travis.yml +++ b/node_modules/resolve/.travis.yml @@ -2,8 +2,9 @@ language: node_js os: - linux node_js: - - "7.9" - - "6.10" + - "8.2" + - "7.10" + - "6.11" - "5.12" - "4.8" - "iojs-v3.3" @@ -15,9 +16,9 @@ node_js: - "0.6" before_install: - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then npm install -g npm@1.3 ; elif [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then case "$(npm --version)" in 1.*) npm install -g npm@1.4.28 ;; 2.*) npm install -g npm@2 ;; esac ; fi' - - 'if [ "${TRAVIS_NODE_VERSION}" != "0.6" ] && [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then npm install -g npm; fi' + - 'if [ "${TRAVIS_NODE_VERSION}" != "0.6" ] && [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then if [ "${TRAVIS_NODE_VERSION%${TRAVIS_NODE_VERSION#[0-9]}}" = "0" ] || [ "${TRAVIS_NODE_VERSION:0:4}" = "iojs" ]; then npm install -g npm@4.5 ; else npm install -g npm; fi; fi' install: - - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then nvm install 0.8 && npm install -g npm@1.3 && npm install -g npm@1.4.28 && npm install -g npm@2 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;' + - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then (nvm install 0.8 && npm install -g npm@1.3 && npm install -g npm@1.4.28 && npm install -g npm@2 && npm install); else npm install; fi;' script: - 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi' - 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi' @@ -31,6 +32,12 @@ matrix: include: - node_js: "node" env: PRETEST=true + - node_js: "8.1" + env: TEST=true ALLOW_FAILURE=true + - node_js: "8.0" + env: TEST=true ALLOW_FAILURE=true + - node_js: "7.9" + env: TEST=true ALLOW_FAILURE=true - node_js: "7.8" env: TEST=true ALLOW_FAILURE=true - node_js: "7.7" @@ -49,6 +56,8 @@ matrix: env: TEST=true ALLOW_FAILURE=true - node_js: "7.0" env: TEST=true ALLOW_FAILURE=true + - node_js: "6.10" + env: TEST=true ALLOW_FAILURE=true - node_js: "6.9" env: TEST=true ALLOW_FAILURE=true - node_js: "6.8" diff --git a/node_modules/resolve/lib/node-modules-paths.js b/node_modules/resolve/lib/node-modules-paths.js index dc06199db..a4bde6a96 100644 --- a/node_modules/resolve/lib/node-modules-paths.js +++ b/node_modules/resolve/lib/node-modules-paths.js @@ -1,16 +1,26 @@ var path = require('path'); +var fs = require('fs'); var parse = path.parse || require('path-parse'); module.exports = function nodeModulesPaths(start, opts) { var modules = opts && opts.moduleDirectory ? [].concat(opts.moduleDirectory) - : ['node_modules'] - ; + : ['node_modules']; // ensure that `start` is an absolute path at this point, // resolving against the process' current working directory var absoluteStart = path.resolve(start); + if (opts && opts.preserveSymlinks === false) { + try { + absoluteStart = fs.realpathSync(absoluteStart); + } catch (err) { + if (err.code !== 'ENOENT') { + throw err; + } + } + } + var prefix = '/'; if (/^([A-Za-z]:)/.test(absoluteStart)) { prefix = ''; diff --git a/node_modules/resolve/lib/sync.js b/node_modules/resolve/lib/sync.js index 510ca256c..bc9e287a1 100644 --- a/node_modules/resolve/lib/sync.js +++ b/node_modules/resolve/lib/sync.js @@ -57,14 +57,18 @@ module.exports = function (x, options) { function loadAsDirectorySync(x) { var pkgfile = path.join(x, '/package.json'); if (isFile(pkgfile)) { - var body = readFileSync(pkgfile, 'utf8'); try { + var body = readFileSync(pkgfile, 'UTF8'); var pkg = JSON.parse(body); + if (opts.packageFilter) { pkg = opts.packageFilter(pkg, x); } if (pkg.main) { + if (pkg.main === '.' || pkg.main === './') { + pkg.main = 'index'; + } var m = loadAsFileSync(path.resolve(x, pkg.main)); if (m) return m; var n = loadAsDirectorySync(path.resolve(x, pkg.main)); diff --git a/node_modules/resolve/package.json b/node_modules/resolve/package.json index 9a93a3dc5..1f8d59786 100644 --- a/node_modules/resolve/package.json +++ b/node_modules/resolve/package.json @@ -1,7 +1,7 @@ { "name": "resolve", "description": "resolve like require.resolve() on behalf of files asynchronously and synchronously", - "version": "1.3.3", + "version": "1.4.0", "repository": { "type": "git", "url": "git://github.com/substack/node-resolve.git" @@ -21,12 +21,12 @@ "test": "npm run --silent tests-only" }, "devDependencies": { - "@ljharb/eslint-config": "^11.0.0", - "eslint": "^3.19.0", + "@ljharb/eslint-config": "^12.2.0", + "eslint": "^4.3.0", "object-keys": "^1.0.11", "safe-publish-latest": "^1.1.1", "tap": "0.4.13", - "tape": "^4.6.3" + "tape": "^4.7.0" }, "license": "MIT", "author": { diff --git a/node_modules/resolve/readme.markdown b/node_modules/resolve/readme.markdown index db0d69f87..1bb67d434 100644 --- a/node_modules/resolve/readme.markdown +++ b/node_modules/resolve/readme.markdown @@ -73,6 +73,11 @@ node_modules recursive walk (probably don't use this) * opts.moduleDirectory - directory (or directories) in which to recursively look for modules. default: `"node_modules"` +* opts.preserveSymlinks - if true, doesn't resolve `basedir` to real path before resolving. +This is the way Node resolves dependencies when executed with the [--preserve-symlinks](https://nodejs.org/api/all.html#cli_preserve_symlinks) flag. +**Note:** this property is currently `true` by default but it will be changed to +`false` in the next major version because *Node's resolution algorithm does not preserve symlinks by default*. + default `opts` values: ``` javascript @@ -88,7 +93,8 @@ default `opts` values: else cb(null, stat.isFile()) }); }, - moduleDirectory: 'node_modules' + moduleDirectory: 'node_modules', + preserveSymlinks: true } ``` @@ -115,6 +121,11 @@ node_modules recursive walk (probably don't use this) * opts.moduleDirectory - directory (or directories) in which to recursively look for modules. default: `"node_modules"` +* opts.preserveSymlinks - if true, doesn't resolve `basedir` to real path before resolving. +This is the way Node resolves dependencies when executed with the [--preserve-symlinks](https://nodejs.org/api/all.html#cli_preserve_symlinks) flag. +**Note:** this property is currently `true` by default but it will be changed to +`false` in the next major version because *Node's resolution algorithm does not preserve symlinks by default*. + default `opts` values: ``` javascript @@ -127,7 +138,8 @@ default `opts` values: try { return fs.statSync(file).isFile() } catch (e) { return false } }, - moduleDirectory: 'node_modules' + moduleDirectory: 'node_modules', + preserveSymlinks: true } ```` diff --git a/node_modules/resolve/test/resolver.js b/node_modules/resolve/test/resolver.js index adde54441..56641dfde 100644 --- a/node_modules/resolve/test/resolver.js +++ b/node_modules/resolve/test/resolver.js @@ -325,3 +325,25 @@ test('async: #121 - treating an existing file as a dir when no basedir', functio t.end(); }); + +test('async dot main', function (t) { + var start = new Date(); + t.plan(3); + resolve('./resolver/dot_main', function (err, ret) { + t.notOk(err); + t.equal(ret, path.join(__dirname, 'resolver/dot_main/index.js')); + t.ok(new Date() - start < 50, 'resolve.sync timedout'); + t.end(); + }); +}); + +test('async dot slash main', function (t) { + var start = new Date(); + t.plan(3); + resolve('./resolver/dot_slash_main', function (err, ret) { + t.notOk(err); + t.equal(ret, path.join(__dirname, 'resolver/dot_slash_main/index.js')); + t.ok(new Date() - start < 50, 'resolve.sync timedout'); + t.end(); + }); +}); diff --git a/node_modules/resolve/test/resolver/dot_main/index.js b/node_modules/resolve/test/resolver/dot_main/index.js new file mode 100644 index 000000000..bd816eaba --- /dev/null +++ b/node_modules/resolve/test/resolver/dot_main/index.js @@ -0,0 +1 @@ +module.exports = 1; diff --git a/node_modules/resolve/test/resolver/dot_main/package.json b/node_modules/resolve/test/resolver/dot_main/package.json new file mode 100644 index 000000000..d7f4fc807 --- /dev/null +++ b/node_modules/resolve/test/resolver/dot_main/package.json @@ -0,0 +1,3 @@ +{ + "main": "." +} diff --git a/node_modules/resolve/test/resolver/dot_slash_main/index.js b/node_modules/resolve/test/resolver/dot_slash_main/index.js new file mode 100644 index 000000000..bd816eaba --- /dev/null +++ b/node_modules/resolve/test/resolver/dot_slash_main/index.js @@ -0,0 +1 @@ +module.exports = 1; diff --git a/node_modules/resolve/test/resolver/dot_slash_main/package.json b/node_modules/resolve/test/resolver/dot_slash_main/package.json new file mode 100644 index 000000000..f51287b9d --- /dev/null +++ b/node_modules/resolve/test/resolver/dot_slash_main/package.json @@ -0,0 +1,3 @@ +{ + "main": "./" +} diff --git a/node_modules/resolve/test/resolver/symlinked/.npmignore b/node_modules/resolve/test/resolver/symlinked/.npmignore new file mode 100644 index 000000000..f23f89258 --- /dev/null +++ b/node_modules/resolve/test/resolver/symlinked/.npmignore @@ -0,0 +1 @@ +symlink
diff --git a/node_modules/resolve/test/resolver/symlinked/_/.npmignore b/node_modules/resolve/test/resolver/symlinked/_/.npmignore new file mode 100644 index 000000000..cf4bab9dd --- /dev/null +++ b/node_modules/resolve/test/resolver/symlinked/_/.npmignore @@ -0,0 +1 @@ +!node_modules diff --git a/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js b/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js diff --git a/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep b/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep diff --git a/node_modules/resolve/test/resolver_sync.js b/node_modules/resolve/test/resolver_sync.js index 2bc361020..8e33dca69 100644 --- a/node_modules/resolve/test/resolver_sync.js +++ b/node_modules/resolve/test/resolver_sync.js @@ -251,3 +251,17 @@ test('sync: #121 - treating an existing file as a dir when no basedir', function t.end(); }); + +test('sync dot main', function (t) { + var start = new Date(); + t.equal(resolve.sync('./resolver/dot_main'), path.join(__dirname, 'resolver/dot_main/index.js')); + t.ok(new Date() - start < 50, 'resolve.sync timedout'); + t.end(); +}); + +test('sync dot slash main', function (t) { + var start = new Date(); + t.equal(resolve.sync('./resolver/dot_slash_main'), path.join(__dirname, 'resolver/dot_slash_main/index.js')); + t.ok(new Date() - start < 50, 'resolve.sync timedout'); + t.end(); +}); diff --git a/node_modules/resolve/test/symlinks.js b/node_modules/resolve/test/symlinks.js new file mode 100644 index 000000000..544a02371 --- /dev/null +++ b/node_modules/resolve/test/symlinks.js @@ -0,0 +1,54 @@ +var path = require('path'); +var fs = require('fs'); +var test = require('tape'); +var resolve = require('../'); + +var symlinkDir = path.join(__dirname, 'resolver', 'symlinked', 'symlink'); +try { + fs.unlinkSync(symlinkDir); +} catch (err) {} +try { + fs.symlinkSync('./_/symlink_target', symlinkDir, 'dir'); +} catch (err) { + // if fails then it is probably on Windows and lets try to create a junction + fs.symlinkSync(path.join(__dirname, 'resolver', 'symlinked', '_', 'symlink_target') + '\\', symlinkDir, 'junction'); +} + +test('symlink', function (t) { + t.plan(1); + + resolve('foo', { basedir: symlinkDir, preserveSymlinks: false }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'foo.js')); + }); +}); + +test('sync symlink when preserveSymlinks = true', function (t) { + t.plan(4); + + resolve('foo', { basedir: symlinkDir }, function (err, res, pkg) { + t.ok(err, 'there is an error'); + t.notOk(res, 'no result'); + + t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error code matches require.resolve'); + t.equal( + err && err.message, + 'Cannot find module \'foo\' from \'' + symlinkDir + '\'', + 'can not find nonexistent module' + ); + }); +}); + +test('sync symlink', function (t) { + var start = new Date(); + t.equal(resolve.sync('foo', { basedir: symlinkDir, preserveSymlinks: false }), path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'foo.js')); + t.ok(new Date() - start < 50, 'resolve.sync timedout'); + t.end(); +}); + +test('sync symlink when preserveSymlinks = true', function (t) { + t.throws(function () { + resolve.sync('foo', { basedir: symlinkDir }); + }, /Cannot find module 'foo'/); + t.end(); +}); |