mirror of
https://github.com/S2-/minifyfromhtml.git
synced 2025-08-03 12:20:04 +02:00
add some babel stuff
This commit is contained in:
20
node_modules/resolve/.editorconfig
generated
vendored
Normal file
20
node_modules/resolve/.editorconfig
generated
vendored
Normal file
@@ -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
|
1
node_modules/resolve/.eslintignore
generated
vendored
Normal file
1
node_modules/resolve/.eslintignore
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
node_modules
|
30
node_modules/resolve/.eslintrc
generated
vendored
Normal file
30
node_modules/resolve/.eslintrc
generated
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"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,
|
||||
"id-length": [2, { "min": 1, "max": 30 }],
|
||||
"max-nested-callbacks": 0,
|
||||
"max-params": 0,
|
||||
"max-statements-per-line": [2, { "max": 2 }],
|
||||
"max-statements": 0,
|
||||
"no-magic-numbers": 0,
|
||||
"no-console": 0,
|
||||
"no-shadow": 0,
|
||||
"no-unused-vars": [2, { "vars": "all", "args": "none" }],
|
||||
"no-use-before-define": 0,
|
||||
"object-curly-newline": 0,
|
||||
"operator-linebreak": [2, "before"],
|
||||
"sort-keys": 0,
|
||||
}
|
||||
}
|
200
node_modules/resolve/.travis.yml
generated
vendored
Normal file
200
node_modules/resolve/.travis.yml
generated
vendored
Normal file
@@ -0,0 +1,200 @@
|
||||
language: node_js
|
||||
os:
|
||||
- linux
|
||||
node_js:
|
||||
- "9.8"
|
||||
- "8.10"
|
||||
- "7.10"
|
||||
- "6.13"
|
||||
- "5.12"
|
||||
- "4.8"
|
||||
- "iojs-v3.3"
|
||||
- "iojs-v2.5"
|
||||
- "iojs-v1.8"
|
||||
- "0.12"
|
||||
- "0.10"
|
||||
- "0.8"
|
||||
- "0.6"
|
||||
before_install:
|
||||
- 'case "${TRAVIS_NODE_VERSION}" in 0.*) export NPM_CONFIG_STRICT_SSL=false ;; esac'
|
||||
- 'nvm install-latest-npm'
|
||||
install:
|
||||
- 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ] || [ "${TRAVIS_NODE_VERSION}" = "0.9" ]; then nvm install --latest-npm 0.8 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;'
|
||||
script:
|
||||
- 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi'
|
||||
- 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi'
|
||||
- 'if [ -n "${COVERAGE-}" ]; then npm run coverage ; fi'
|
||||
- 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi'
|
||||
sudo: false
|
||||
env:
|
||||
- TEST=true
|
||||
matrix:
|
||||
fast_finish: true
|
||||
include:
|
||||
- node_js: "lts/*"
|
||||
env: PRETEST=true
|
||||
- node_js: "9.7"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "9.6"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "9.5"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "9.4"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "9.3"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "9.2"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "9.1"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "9.0"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "8.9"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "8.8"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "8.7"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "8.6"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "8.5"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "8.4"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "8.3"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "8.2"
|
||||
env: TEST=true ALLOW_FAILURE=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"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "7.6"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "7.5"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "7.4"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "7.3"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "7.2"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "7.1"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "7.0"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "6.12"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "6.11"
|
||||
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"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "6.7"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "6.6"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "6.5"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "6.4"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "6.3"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "6.2"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "6.1"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "6.0"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "5.11"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "5.10"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "5.9"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "5.8"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "5.7"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "5.6"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "5.5"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "5.4"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "5.3"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "5.2"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "5.1"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "5.0"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "4.7"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "4.6"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "4.5"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "4.4"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "4.3"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "4.2"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "4.1"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "4.0"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "iojs-v3.2"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "iojs-v3.1"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "iojs-v3.0"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "iojs-v2.4"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "iojs-v2.3"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "iojs-v2.2"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "iojs-v2.1"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "iojs-v2.0"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "iojs-v1.7"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "iojs-v1.6"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "iojs-v1.5"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "iojs-v1.4"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "iojs-v1.3"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "iojs-v1.2"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "iojs-v1.1"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "iojs-v1.0"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "0.11"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "0.9"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "0.6"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
- node_js: "0.4"
|
||||
env: TEST=true ALLOW_FAILURE=true
|
||||
allow_failures:
|
||||
- os: osx
|
||||
- env: TEST=true ALLOW_FAILURE=true
|
18
node_modules/resolve/LICENSE
generated
vendored
Normal file
18
node_modules/resolve/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
This software is released under the MIT license:
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
47
node_modules/resolve/appveyor.yml
generated
vendored
Normal file
47
node_modules/resolve/appveyor.yml
generated
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
version: 1.0.{build}
|
||||
skip_branch_with_pr: true
|
||||
build: off
|
||||
|
||||
environment:
|
||||
matrix:
|
||||
- nodejs_version: "9"
|
||||
- nodejs_version: "8"
|
||||
- nodejs_version: "7"
|
||||
- nodejs_version: "6"
|
||||
- nodejs_version: "5"
|
||||
- nodejs_version: "4"
|
||||
- nodejs_version: "3"
|
||||
- nodejs_version: "2"
|
||||
- nodejs_version: "1"
|
||||
- nodejs_version: "0.12"
|
||||
- nodejs_version: "0.10"
|
||||
- nodejs_version: "0.8"
|
||||
- nodejs_version: "0.6"
|
||||
matrix:
|
||||
# fast_finish: true
|
||||
allow_failures:
|
||||
- nodejs_version: "0.8"
|
||||
- nodejs_version: "0.6"
|
||||
|
||||
platform:
|
||||
- x86
|
||||
- x64
|
||||
|
||||
# Install scripts. (runs after repo cloning)
|
||||
install:
|
||||
# Get the latest stable version of Node.js or io.js
|
||||
- ps: Install-Product node $env:nodejs_version $env:platform
|
||||
- IF %nodejs_version% EQU 0.6 npm config set strict-ssl false && npm -g install npm@1.3
|
||||
- IF %nodejs_version% EQU 0.8 npm config set strict-ssl false && npm -g install npm@1.4.28 && npm install -g npm@4.5
|
||||
- set PATH=%APPDATA%\npm;%PATH%
|
||||
#- IF %nodejs_version% NEQ 0.6 AND %nodejs_version% NEQ 0.8 npm -g install npm
|
||||
# install modules
|
||||
- npm install
|
||||
|
||||
# Post-install test scripts.
|
||||
test_script:
|
||||
# Output useful info for debugging.
|
||||
- node --version
|
||||
- npm --version
|
||||
# run tests
|
||||
- npm run tests-only
|
5
node_modules/resolve/example/async.js
generated
vendored
Normal file
5
node_modules/resolve/example/async.js
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
var resolve = require('../');
|
||||
resolve('tap', { basedir: __dirname }, function (err, res) {
|
||||
if (err) console.error(err);
|
||||
else console.log(res);
|
||||
});
|
3
node_modules/resolve/example/sync.js
generated
vendored
Normal file
3
node_modules/resolve/example/sync.js
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
var resolve = require('../');
|
||||
var res = resolve.sync('tap', { basedir: __dirname });
|
||||
console.log(res);
|
8
node_modules/resolve/index.js
generated
vendored
Normal file
8
node_modules/resolve/index.js
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
var core = require('./lib/core');
|
||||
var async = require('./lib/async');
|
||||
async.core = core;
|
||||
async.isCore = function isCore(x) { return core[x]; };
|
||||
async.sync = require('./lib/sync');
|
||||
|
||||
exports = async;
|
||||
module.exports = async;
|
205
node_modules/resolve/lib/async.js
generated
vendored
Normal file
205
node_modules/resolve/lib/async.js
generated
vendored
Normal file
@@ -0,0 +1,205 @@
|
||||
var core = require('./core');
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var caller = require('./caller.js');
|
||||
var nodeModulesPaths = require('./node-modules-paths.js');
|
||||
|
||||
var defaultIsFile = function isFile(file, cb) {
|
||||
fs.stat(file, function (err, stat) {
|
||||
if (!err) {
|
||||
return cb(null, stat.isFile() || stat.isFIFO());
|
||||
}
|
||||
if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false);
|
||||
return cb(err);
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = function resolve(x, options, callback) {
|
||||
var cb = callback;
|
||||
var opts = options || {};
|
||||
if (typeof opts === 'function') {
|
||||
cb = opts;
|
||||
opts = {};
|
||||
}
|
||||
if (typeof x !== 'string') {
|
||||
var err = new TypeError('Path must be a string.');
|
||||
return process.nextTick(function () {
|
||||
cb(err);
|
||||
});
|
||||
}
|
||||
|
||||
var isFile = opts.isFile || defaultIsFile;
|
||||
var readFile = opts.readFile || fs.readFile;
|
||||
|
||||
var extensions = opts.extensions || ['.js'];
|
||||
var basedir = opts.basedir || path.dirname(caller());
|
||||
|
||||
opts.paths = opts.paths || [];
|
||||
|
||||
if (/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(x)) {
|
||||
var res = path.resolve(basedir, x);
|
||||
if (x === '..' || x.slice(-1) === '/') res += '/';
|
||||
if (/\/$/.test(x) && res === basedir) {
|
||||
loadAsDirectory(res, opts.package, onfile);
|
||||
} else loadAsFile(res, opts.package, onfile);
|
||||
} else loadNodeModules(x, basedir, function (err, n, pkg) {
|
||||
if (err) cb(err);
|
||||
else if (n) cb(null, n, pkg);
|
||||
else if (core[x]) return cb(null, x);
|
||||
else {
|
||||
var moduleError = new Error("Cannot find module '" + x + "' from '" + basedir + "'");
|
||||
moduleError.code = 'MODULE_NOT_FOUND';
|
||||
cb(moduleError);
|
||||
}
|
||||
});
|
||||
|
||||
function onfile(err, m, pkg) {
|
||||
if (err) cb(err);
|
||||
else if (m) cb(null, m, pkg);
|
||||
else loadAsDirectory(res, function (err, d, pkg) {
|
||||
if (err) cb(err);
|
||||
else if (d) cb(null, d, pkg);
|
||||
else {
|
||||
var moduleError = new Error("Cannot find module '" + x + "' from '" + basedir + "'");
|
||||
moduleError.code = 'MODULE_NOT_FOUND';
|
||||
cb(moduleError);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function loadAsFile(x, thePackage, callback) {
|
||||
var loadAsFilePackage = thePackage;
|
||||
var cb = callback;
|
||||
if (typeof loadAsFilePackage === 'function') {
|
||||
cb = loadAsFilePackage;
|
||||
loadAsFilePackage = undefined;
|
||||
}
|
||||
|
||||
var exts = [''].concat(extensions);
|
||||
load(exts, x, loadAsFilePackage);
|
||||
|
||||
function load(exts, x, loadPackage) {
|
||||
if (exts.length === 0) return cb(null, undefined, loadPackage);
|
||||
var file = x + exts[0];
|
||||
|
||||
var pkg = loadPackage;
|
||||
if (pkg) onpkg(null, pkg);
|
||||
else loadpkg(path.dirname(file), onpkg);
|
||||
|
||||
function onpkg(err, pkg_, dir) {
|
||||
pkg = pkg_;
|
||||
if (err) return cb(err);
|
||||
if (dir && pkg && opts.pathFilter) {
|
||||
var rfile = path.relative(dir, file);
|
||||
var rel = rfile.slice(0, rfile.length - exts[0].length);
|
||||
var r = opts.pathFilter(pkg, x, rel);
|
||||
if (r) return load(
|
||||
[''].concat(extensions.slice()),
|
||||
path.resolve(dir, r),
|
||||
pkg
|
||||
);
|
||||
}
|
||||
isFile(file, onex);
|
||||
}
|
||||
function onex(err, ex) {
|
||||
if (err) return cb(err);
|
||||
if (ex) return cb(null, file, pkg);
|
||||
load(exts.slice(1), x, pkg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function loadpkg(dir, cb) {
|
||||
if (dir === '' || dir === '/') return cb(null);
|
||||
if (process.platform === 'win32' && (/^\w:[/\\]*$/).test(dir)) {
|
||||
return cb(null);
|
||||
}
|
||||
if (/[/\\]node_modules[/\\]*$/.test(dir)) return cb(null);
|
||||
|
||||
var pkgfile = path.join(dir, 'package.json');
|
||||
isFile(pkgfile, function (err, ex) {
|
||||
// on err, ex is false
|
||||
if (!ex) return loadpkg(path.dirname(dir), cb);
|
||||
|
||||
readFile(pkgfile, function (err, body) {
|
||||
if (err) cb(err);
|
||||
try { var pkg = JSON.parse(body); } catch (jsonErr) {}
|
||||
|
||||
if (pkg && opts.packageFilter) {
|
||||
pkg = opts.packageFilter(pkg, pkgfile);
|
||||
}
|
||||
cb(null, pkg, dir);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function loadAsDirectory(x, loadAsDirectoryPackage, callback) {
|
||||
var cb = callback;
|
||||
var fpkg = loadAsDirectoryPackage;
|
||||
if (typeof fpkg === 'function') {
|
||||
cb = fpkg;
|
||||
fpkg = opts.package;
|
||||
}
|
||||
|
||||
var pkgfile = path.join(x, 'package.json');
|
||||
isFile(pkgfile, function (err, ex) {
|
||||
if (err) return cb(err);
|
||||
if (!ex) return loadAsFile(path.join(x, 'index'), fpkg, cb);
|
||||
|
||||
readFile(pkgfile, function (err, body) {
|
||||
if (err) return cb(err);
|
||||
try {
|
||||
var pkg = JSON.parse(body);
|
||||
} catch (jsonErr) {}
|
||||
|
||||
if (opts.packageFilter) {
|
||||
pkg = opts.packageFilter(pkg, pkgfile);
|
||||
}
|
||||
|
||||
if (pkg.main) {
|
||||
if (pkg.main === '.' || pkg.main === './') {
|
||||
pkg.main = 'index';
|
||||
}
|
||||
loadAsFile(path.resolve(x, pkg.main), pkg, function (err, m, pkg) {
|
||||
if (err) return cb(err);
|
||||
if (m) return cb(null, m, pkg);
|
||||
if (!pkg) return loadAsFile(path.join(x, 'index'), pkg, cb);
|
||||
|
||||
var dir = path.resolve(x, pkg.main);
|
||||
loadAsDirectory(dir, pkg, function (err, n, pkg) {
|
||||
if (err) return cb(err);
|
||||
if (n) return cb(null, n, pkg);
|
||||
loadAsFile(path.join(x, 'index'), pkg, cb);
|
||||
});
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
loadAsFile(path.join(x, '/index'), pkg, cb);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function processDirs(cb, dirs) {
|
||||
if (dirs.length === 0) return cb(null, undefined);
|
||||
var dir = dirs[0];
|
||||
|
||||
var file = path.join(dir, x);
|
||||
loadAsFile(file, opts.package, onfile);
|
||||
|
||||
function onfile(err, m, pkg) {
|
||||
if (err) return cb(err);
|
||||
if (m) return cb(null, m, pkg);
|
||||
loadAsDirectory(path.join(dir, x), opts.package, ondir);
|
||||
}
|
||||
|
||||
function ondir(err, n, pkg) {
|
||||
if (err) return cb(err);
|
||||
if (n) return cb(null, n, pkg);
|
||||
processDirs(cb, dirs.slice(1));
|
||||
}
|
||||
}
|
||||
function loadNodeModules(x, start, cb) {
|
||||
processDirs(cb, nodeModulesPaths(start, opts));
|
||||
}
|
||||
};
|
8
node_modules/resolve/lib/caller.js
generated
vendored
Normal file
8
node_modules/resolve/lib/caller.js
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
module.exports = function () {
|
||||
// see https://code.google.com/p/v8/wiki/JavaScriptStackTraceApi
|
||||
var origPrepareStackTrace = Error.prepareStackTrace;
|
||||
Error.prepareStackTrace = function (_, stack) { return stack; };
|
||||
var stack = (new Error()).stack;
|
||||
Error.prepareStackTrace = origPrepareStackTrace;
|
||||
return stack[2].getFileName();
|
||||
};
|
53
node_modules/resolve/lib/core.js
generated
vendored
Normal file
53
node_modules/resolve/lib/core.js
generated
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
var current = (process.versions && process.versions.node && process.versions.node.split('.')) || [];
|
||||
|
||||
function specifierIncluded(specifier) {
|
||||
var parts = specifier.split(' ');
|
||||
var op = parts[0];
|
||||
var versionParts = parts[1].split('.');
|
||||
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
var cur = Number(current[i] || 0);
|
||||
var ver = Number(versionParts[i] || 0);
|
||||
if (cur === ver) {
|
||||
continue; // eslint-disable-line no-restricted-syntax, no-continue
|
||||
}
|
||||
if (op === '<') {
|
||||
return cur < ver;
|
||||
} else if (op === '>=') {
|
||||
return cur >= ver;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return op === '>=';
|
||||
}
|
||||
|
||||
function matchesRange(range) {
|
||||
var specifiers = range.split(/ ?&& ?/);
|
||||
if (specifiers.length === 0) { return false; }
|
||||
for (var i = 0; i < specifiers.length; ++i) {
|
||||
if (!specifierIncluded(specifiers[i])) { return false; }
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function versionIncluded(specifierValue) {
|
||||
if (typeof specifierValue === 'boolean') { return specifierValue; }
|
||||
if (specifierValue && typeof specifierValue === 'object') {
|
||||
for (var i = 0; i < specifierValue.length; ++i) {
|
||||
if (matchesRange(specifierValue[i])) { return true; }
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return matchesRange(specifierValue);
|
||||
}
|
||||
|
||||
var data = require('./core.json');
|
||||
|
||||
var core = {};
|
||||
for (var mod in data) { // eslint-disable-line no-restricted-syntax
|
||||
if (Object.prototype.hasOwnProperty.call(data, mod)) {
|
||||
core[mod] = versionIncluded(data[mod]);
|
||||
}
|
||||
}
|
||||
module.exports = core;
|
69
node_modules/resolve/lib/core.json
generated
vendored
Normal file
69
node_modules/resolve/lib/core.json
generated
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"assert": true,
|
||||
"async_hooks": ">= 8",
|
||||
"buffer_ieee754": "< 0.9.7",
|
||||
"buffer": true,
|
||||
"child_process": true,
|
||||
"cluster": true,
|
||||
"console": true,
|
||||
"constants": true,
|
||||
"crypto": true,
|
||||
"_debugger": "< 8",
|
||||
"dgram": true,
|
||||
"dns": true,
|
||||
"domain": true,
|
||||
"events": true,
|
||||
"freelist": "< 6",
|
||||
"fs": true,
|
||||
"_http_agent": ">= 0.11.1",
|
||||
"_http_client": ">= 0.11.1",
|
||||
"_http_common": ">= 0.11.1",
|
||||
"_http_incoming": ">= 0.11.1",
|
||||
"_http_outgoing": ">= 0.11.1",
|
||||
"_http_server": ">= 0.11.1",
|
||||
"http": true,
|
||||
"http2": ">= 8.8",
|
||||
"https": true,
|
||||
"inspector": ">= 8.0.0",
|
||||
"_linklist": "< 8",
|
||||
"module": true,
|
||||
"net": true,
|
||||
"node-inspect/lib/_inspect": ">= 7.6.0",
|
||||
"node-inspect/lib/internal/inspect_client": ">= 7.6.0",
|
||||
"node-inspect/lib/internal/inspect_repl": ">= 7.6.0",
|
||||
"os": true,
|
||||
"path": true,
|
||||
"perf_hooks": ">= 8.5",
|
||||
"process": ">= 1",
|
||||
"punycode": true,
|
||||
"querystring": true,
|
||||
"readline": true,
|
||||
"repl": true,
|
||||
"smalloc": ">= 0.11.5 && < 3",
|
||||
"_stream_duplex": ">= 0.9.4",
|
||||
"_stream_transform": ">= 0.9.4",
|
||||
"_stream_wrap": ">= 1.4.1",
|
||||
"_stream_passthrough": ">= 0.9.4",
|
||||
"_stream_readable": ">= 0.9.4",
|
||||
"_stream_writable": ">= 0.9.4",
|
||||
"stream": true,
|
||||
"string_decoder": true,
|
||||
"sys": true,
|
||||
"timers": true,
|
||||
"_tls_common": ">= 0.11.13",
|
||||
"_tls_legacy": ">= 0.11.3",
|
||||
"_tls_wrap": ">= 0.11.3",
|
||||
"tls": true,
|
||||
"tty": true,
|
||||
"url": true,
|
||||
"util": true,
|
||||
"v8/tools/codemap": [">= 4.4.0 && < 5", ">= 5.2.0"],
|
||||
"v8/tools/consarray": [">= 4.4.0 && < 5", ">= 5.2.0"],
|
||||
"v8/tools/csvparser": [">= 4.4.0 && < 5", ">= 5.2.0"],
|
||||
"v8/tools/logreader": [">= 4.4.0 && < 5", ">= 5.2.0"],
|
||||
"v8/tools/profile_view": [">= 4.4.0 && < 5", ">= 5.2.0"],
|
||||
"v8/tools/splaytree": [">= 4.4.0 && < 5", ">= 5.2.0"],
|
||||
"v8": ">= 1",
|
||||
"vm": true,
|
||||
"zlib": true
|
||||
}
|
45
node_modules/resolve/lib/node-modules-paths.js
generated
vendored
Normal file
45
node_modules/resolve/lib/node-modules-paths.js
generated
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
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'];
|
||||
|
||||
// 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 = '';
|
||||
} else if (/^\\\\/.test(absoluteStart)) {
|
||||
prefix = '\\\\';
|
||||
}
|
||||
|
||||
var paths = [absoluteStart];
|
||||
var parsed = parse(absoluteStart);
|
||||
while (parsed.dir !== paths[paths.length - 1]) {
|
||||
paths.push(parsed.dir);
|
||||
parsed = parse(parsed.dir);
|
||||
}
|
||||
|
||||
var dirs = paths.reduce(function (dirs, aPath) {
|
||||
return dirs.concat(modules.map(function (moduleDir) {
|
||||
return path.join(prefix, aPath, moduleDir);
|
||||
}));
|
||||
}, []);
|
||||
|
||||
return opts && opts.paths ? dirs.concat(opts.paths) : dirs;
|
||||
};
|
131
node_modules/resolve/lib/sync.js
generated
vendored
Normal file
131
node_modules/resolve/lib/sync.js
generated
vendored
Normal file
@@ -0,0 +1,131 @@
|
||||
var core = require('./core');
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var caller = require('./caller.js');
|
||||
var nodeModulesPaths = require('./node-modules-paths.js');
|
||||
|
||||
var defaultIsFile = function isFile(file) {
|
||||
try {
|
||||
var stat = fs.statSync(file);
|
||||
} catch (e) {
|
||||
if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false;
|
||||
throw e;
|
||||
}
|
||||
return stat.isFile() || stat.isFIFO();
|
||||
};
|
||||
|
||||
module.exports = function (x, options) {
|
||||
if (typeof x !== 'string') {
|
||||
throw new TypeError('Path must be a string.');
|
||||
}
|
||||
var opts = options || {};
|
||||
var isFile = opts.isFile || defaultIsFile;
|
||||
var readFileSync = opts.readFileSync || fs.readFileSync;
|
||||
|
||||
var extensions = opts.extensions || ['.js'];
|
||||
var basedir = opts.basedir || path.dirname(caller());
|
||||
|
||||
opts.paths = opts.paths || [];
|
||||
|
||||
if (/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(x)) {
|
||||
var res = path.resolve(basedir, x);
|
||||
if (x === '..' || x.slice(-1) === '/') res += '/';
|
||||
var m = loadAsFileSync(res) || loadAsDirectorySync(res);
|
||||
if (m) return m;
|
||||
} else {
|
||||
var n = loadNodeModulesSync(x, basedir);
|
||||
if (n) return n;
|
||||
}
|
||||
|
||||
if (core[x]) return x;
|
||||
|
||||
var err = new Error("Cannot find module '" + x + "' from '" + basedir + "'");
|
||||
err.code = 'MODULE_NOT_FOUND';
|
||||
throw err;
|
||||
|
||||
function loadAsFileSync(x) {
|
||||
var pkg = loadpkg(path.dirname(x));
|
||||
|
||||
if (pkg && pkg.dir && pkg.pkg && opts.pathFilter) {
|
||||
var rfile = path.relative(pkg.dir, x);
|
||||
var r = opts.pathFilter(pkg.pkg, x, rfile);
|
||||
if (r) {
|
||||
x = path.resolve(pkg.dir, r); // eslint-disable-line no-param-reassign
|
||||
}
|
||||
}
|
||||
|
||||
if (isFile(x)) {
|
||||
return x;
|
||||
}
|
||||
|
||||
for (var i = 0; i < extensions.length; i++) {
|
||||
var file = x + extensions[i];
|
||||
if (isFile(file)) {
|
||||
return file;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function loadpkg(dir) {
|
||||
if (dir === '' || dir === '/') return;
|
||||
if (process.platform === 'win32' && (/^\w:[/\\]*$/).test(dir)) {
|
||||
return;
|
||||
}
|
||||
if (/[/\\]node_modules[/\\]*$/.test(dir)) return;
|
||||
|
||||
var pkgfile = path.join(dir, 'package.json');
|
||||
|
||||
if (!isFile(pkgfile)) {
|
||||
return loadpkg(path.dirname(dir));
|
||||
}
|
||||
|
||||
var body = readFileSync(pkgfile);
|
||||
|
||||
try {
|
||||
var pkg = JSON.parse(body);
|
||||
} catch (jsonErr) {}
|
||||
|
||||
if (pkg && opts.packageFilter) {
|
||||
pkg = opts.packageFilter(pkg, dir);
|
||||
}
|
||||
|
||||
return { pkg: pkg, dir: dir };
|
||||
}
|
||||
|
||||
function loadAsDirectorySync(x) {
|
||||
var pkgfile = path.join(x, '/package.json');
|
||||
if (isFile(pkgfile)) {
|
||||
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));
|
||||
if (n) return n;
|
||||
}
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
return loadAsFileSync(path.join(x, '/index'));
|
||||
}
|
||||
|
||||
function loadNodeModulesSync(x, start) {
|
||||
var dirs = nodeModulesPaths(start, opts);
|
||||
for (var i = 0; i < dirs.length; i++) {
|
||||
var dir = dirs[i];
|
||||
var m = loadAsFileSync(path.join(dir, '/', x));
|
||||
if (m) return m;
|
||||
var n = loadAsDirectorySync(path.join(dir, '/', x));
|
||||
if (n) return n;
|
||||
}
|
||||
}
|
||||
};
|
69
node_modules/resolve/package.json
generated
vendored
Normal file
69
node_modules/resolve/package.json
generated
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"_from": "resolve@^1.3.2",
|
||||
"_id": "resolve@1.7.1",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
|
||||
"_location": "/resolve",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "resolve@^1.3.2",
|
||||
"name": "resolve",
|
||||
"escapedName": "resolve",
|
||||
"rawSpec": "^1.3.2",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "^1.3.2"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/@babel/core"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
|
||||
"_shasum": "aadd656374fd298aee895bc026b8297418677fd3",
|
||||
"_spec": "resolve@^1.3.2",
|
||||
"_where": "/home/s2/Documents/Code/minifyfromhtml/node_modules/@babel/core",
|
||||
"author": {
|
||||
"name": "James Halliday",
|
||||
"email": "mail@substack.net",
|
||||
"url": "http://substack.net"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/browserify/resolve/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"dependencies": {
|
||||
"path-parse": "^1.0.5"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "resolve like require.resolve() on behalf of files asynchronously and synchronously",
|
||||
"devDependencies": {
|
||||
"@ljharb/eslint-config": "^12.2.1",
|
||||
"eslint": "^4.19.1",
|
||||
"object-keys": "^1.0.11",
|
||||
"safe-publish-latest": "^1.1.1",
|
||||
"tap": "0.4.13",
|
||||
"tape": "^4.9.0"
|
||||
},
|
||||
"homepage": "https://github.com/browserify/resolve#readme",
|
||||
"keywords": [
|
||||
"resolve",
|
||||
"require",
|
||||
"node",
|
||||
"module"
|
||||
],
|
||||
"license": "MIT",
|
||||
"main": "index.js",
|
||||
"name": "resolve",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/browserify/resolve.git"
|
||||
},
|
||||
"scripts": {
|
||||
"lint": "eslint .",
|
||||
"prepublish": "safe-publish-latest",
|
||||
"pretest": "npm run lint",
|
||||
"test": "npm run --silent tests-only",
|
||||
"tests-only": "tape test/*.js"
|
||||
},
|
||||
"version": "1.7.1"
|
||||
}
|
173
node_modules/resolve/readme.markdown
generated
vendored
Normal file
173
node_modules/resolve/readme.markdown
generated
vendored
Normal file
@@ -0,0 +1,173 @@
|
||||
# resolve
|
||||
|
||||
implements the [node `require.resolve()`
|
||||
algorithm](https://nodejs.org/api/modules.html#modules_all_together)
|
||||
such that you can `require.resolve()` on behalf of a file asynchronously and
|
||||
synchronously
|
||||
|
||||
[](http://travis-ci.org/browserify/node-resolve)
|
||||
|
||||
# example
|
||||
|
||||
asynchronously resolve:
|
||||
|
||||
``` js
|
||||
var resolve = require('resolve');
|
||||
resolve('tap', { basedir: __dirname }, function (err, res) {
|
||||
if (err) console.error(err)
|
||||
else console.log(res)
|
||||
});
|
||||
```
|
||||
|
||||
```
|
||||
$ node example/async.js
|
||||
/home/substack/projects/node-resolve/node_modules/tap/lib/main.js
|
||||
```
|
||||
|
||||
synchronously resolve:
|
||||
|
||||
``` js
|
||||
var resolve = require('resolve');
|
||||
var res = resolve.sync('tap', { basedir: __dirname });
|
||||
console.log(res);
|
||||
```
|
||||
|
||||
```
|
||||
$ node example/sync.js
|
||||
/home/substack/projects/node-resolve/node_modules/tap/lib/main.js
|
||||
```
|
||||
|
||||
# methods
|
||||
|
||||
``` js
|
||||
var resolve = require('resolve')
|
||||
```
|
||||
|
||||
## resolve(id, opts={}, cb)
|
||||
|
||||
Asynchronously resolve the module path string `id` into `cb(err, res [, pkg])`, where `pkg` (if defined) is the data from `package.json`.
|
||||
|
||||
options are:
|
||||
|
||||
* opts.basedir - directory to begin resolving from
|
||||
|
||||
* opts.package - `package.json` data applicable to the module being loaded
|
||||
|
||||
* opts.extensions - array of file extensions to search in order
|
||||
|
||||
* opts.readFile - how to read files asynchronously
|
||||
|
||||
* opts.isFile - function to asynchronously test whether a file exists
|
||||
|
||||
* `opts.packageFilter(pkg, pkgfile)` - transform the parsed package.json contents before looking at the "main" field
|
||||
* pkg - package data
|
||||
* pkgfile - path to package.json
|
||||
|
||||
* `opts.pathFilter(pkg, path, relativePath)` - transform a path within a package
|
||||
* pkg - package data
|
||||
* path - the path being resolved
|
||||
* relativePath - the path relative from the package.json location
|
||||
* returns - a relative path that will be joined from the package.json location
|
||||
|
||||
* opts.paths - require.paths array to use if nothing is found on the normal `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
|
||||
{
|
||||
paths: [],
|
||||
basedir: __dirname,
|
||||
extensions: [ '.js' ],
|
||||
readFile: fs.readFile,
|
||||
isFile: function isFile(file, cb) {
|
||||
fs.stat(file, function (err, stat) {
|
||||
if (!err) {
|
||||
return cb(null, stat.isFile() || stat.isFIFO());
|
||||
}
|
||||
if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false);
|
||||
return cb(err);
|
||||
});
|
||||
},
|
||||
moduleDirectory: 'node_modules',
|
||||
preserveSymlinks: true
|
||||
}
|
||||
```
|
||||
|
||||
## resolve.sync(id, opts)
|
||||
|
||||
Synchronously resolve the module path string `id`, returning the result and
|
||||
throwing an error when `id` can't be resolved.
|
||||
|
||||
options are:
|
||||
|
||||
* opts.basedir - directory to begin resolving from
|
||||
|
||||
* opts.extensions - array of file extensions to search in order
|
||||
|
||||
* opts.readFile - how to read files synchronously
|
||||
|
||||
* opts.isFile - function to synchronously test whether a file exists
|
||||
|
||||
* `opts.packageFilter(pkg, dir)` - transform the parsed package.json contents before looking at the "main" field
|
||||
* pkg - package data
|
||||
* dir - directory for package.json (Note: the second argument will change to "pkgfile" in v2)
|
||||
|
||||
* `opts.pathFilter(pkg, path, relativePath)` - transform a path within a package
|
||||
* pkg - package data
|
||||
* path - the path being resolved
|
||||
* relativePath - the path relative from the package.json location
|
||||
* returns - a relative path that will be joined from the package.json location
|
||||
|
||||
* opts.paths - require.paths array to use if nothing is found on the normal `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
|
||||
{
|
||||
paths: [],
|
||||
basedir: __dirname,
|
||||
extensions: [ '.js' ],
|
||||
readFileSync: fs.readFileSync,
|
||||
isFile: function isFile(file) {
|
||||
try {
|
||||
var stat = fs.statSync(file);
|
||||
} catch (e) {
|
||||
if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false;
|
||||
throw e;
|
||||
}
|
||||
return stat.isFile() || stat.isFIFO();
|
||||
},
|
||||
moduleDirectory: 'node_modules',
|
||||
preserveSymlinks: true
|
||||
}
|
||||
````
|
||||
|
||||
## resolve.isCore(pkg)
|
||||
|
||||
Return whether a package is in core.
|
||||
|
||||
# install
|
||||
|
||||
With [npm](https://npmjs.org) do:
|
||||
|
||||
```
|
||||
npm install resolve
|
||||
```
|
||||
|
||||
# license
|
||||
|
||||
MIT
|
5
node_modules/resolve/test/.eslintrc
generated
vendored
Normal file
5
node_modules/resolve/test/.eslintrc
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"rules": {
|
||||
"max-lines": 0
|
||||
}
|
||||
}
|
82
node_modules/resolve/test/core.js
generated
vendored
Normal file
82
node_modules/resolve/test/core.js
generated
vendored
Normal file
@@ -0,0 +1,82 @@
|
||||
var test = require('tape');
|
||||
var keys = require('object-keys');
|
||||
var resolve = require('../');
|
||||
|
||||
test('core modules', function (t) {
|
||||
t.test('isCore()', function (st) {
|
||||
st.ok(resolve.isCore('fs'));
|
||||
st.ok(resolve.isCore('net'));
|
||||
st.ok(resolve.isCore('http'));
|
||||
|
||||
st.ok(!resolve.isCore('seq'));
|
||||
st.ok(!resolve.isCore('../'));
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('core list', function (st) {
|
||||
var cores = keys(resolve.core);
|
||||
st.plan(cores.length);
|
||||
|
||||
for (var i = 0; i < cores.length; ++i) {
|
||||
var mod = cores[i];
|
||||
if (resolve.core[mod]) {
|
||||
st.doesNotThrow(
|
||||
function () { require(mod); }, // eslint-disable-line no-loop-func
|
||||
mod + ' supported; requiring does not throw'
|
||||
);
|
||||
} else {
|
||||
st.throws(
|
||||
function () { require(mod); }, // eslint-disable-line no-loop-func
|
||||
mod + ' not supported; requiring throws'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('core via repl module', { skip: !resolve.core.repl }, function (st) {
|
||||
var libs = require('repl')._builtinLibs; // eslint-disable-line no-underscore-dangle
|
||||
if (!libs) {
|
||||
st.skip('module.builtinModules does not exist');
|
||||
return st.end();
|
||||
}
|
||||
for (var i = 0; i < libs.length; ++i) {
|
||||
var mod = libs[i];
|
||||
st.ok(resolve.core[mod], mod + ' is a core module');
|
||||
st.doesNotThrow(
|
||||
function () { require(mod); }, // eslint-disable-line no-loop-func
|
||||
'requiring ' + mod + ' does not throw'
|
||||
);
|
||||
}
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('core via builtinModules list', { skip: !resolve.core.module }, function (st) {
|
||||
var libs = require('module').builtinModules;
|
||||
if (!libs) {
|
||||
st.skip('module.builtinModules does not exist');
|
||||
return st.end();
|
||||
}
|
||||
var blacklist = [
|
||||
'_debug_agent',
|
||||
'v8/tools/tickprocessor-driver',
|
||||
'v8/tools/SourceMap',
|
||||
'v8/tools/tickprocessor',
|
||||
'v8/tools/profile'
|
||||
];
|
||||
for (var i = 0; i < libs.length; ++i) {
|
||||
var mod = libs[i];
|
||||
if (blacklist.indexOf(mod) === -1) {
|
||||
st.ok(resolve.core[mod], mod + ' is a core module');
|
||||
st.doesNotThrow(
|
||||
function () { require(mod); }, // eslint-disable-line no-loop-func
|
||||
'requiring ' + mod + ' does not throw'
|
||||
);
|
||||
}
|
||||
}
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.end();
|
||||
});
|
29
node_modules/resolve/test/dotdot.js
generated
vendored
Normal file
29
node_modules/resolve/test/dotdot.js
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
var path = require('path');
|
||||
var test = require('tape');
|
||||
var resolve = require('../');
|
||||
|
||||
test('dotdot', function (t) {
|
||||
t.plan(4);
|
||||
var dir = path.join(__dirname, '/dotdot/abc');
|
||||
|
||||
resolve('..', { basedir: dir }, function (err, res, pkg) {
|
||||
t.ifError(err);
|
||||
t.equal(res, path.join(__dirname, 'dotdot/index.js'));
|
||||
});
|
||||
|
||||
resolve('.', { basedir: dir }, function (err, res, pkg) {
|
||||
t.ifError(err);
|
||||
t.equal(res, path.join(dir, 'index.js'));
|
||||
});
|
||||
});
|
||||
|
||||
test('dotdot sync', function (t) {
|
||||
t.plan(2);
|
||||
var dir = path.join(__dirname, '/dotdot/abc');
|
||||
|
||||
var a = resolve.sync('..', { basedir: dir });
|
||||
t.equal(a, path.join(__dirname, 'dotdot/index.js'));
|
||||
|
||||
var b = resolve.sync('.', { basedir: dir });
|
||||
t.equal(b, path.join(dir, 'index.js'));
|
||||
});
|
2
node_modules/resolve/test/dotdot/abc/index.js
generated
vendored
Normal file
2
node_modules/resolve/test/dotdot/abc/index.js
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
var x = require('..');
|
||||
console.log(x);
|
1
node_modules/resolve/test/dotdot/index.js
generated
vendored
Normal file
1
node_modules/resolve/test/dotdot/index.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = 'whatever';
|
13
node_modules/resolve/test/faulty_basedir.js
generated
vendored
Normal file
13
node_modules/resolve/test/faulty_basedir.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
var test = require('tape');
|
||||
var resolve = require('../');
|
||||
|
||||
test('faulty basedir must produce error in windows', { skip: process.platform !== 'win32' }, function (t) {
|
||||
t.plan(1);
|
||||
|
||||
var resolverDir = 'C:\\a\\b\\c\\d';
|
||||
|
||||
resolve('tape/lib/test.js', { basedir: resolverDir }, function (err, res, pkg) {
|
||||
t.equal(true, !!err);
|
||||
});
|
||||
|
||||
});
|
34
node_modules/resolve/test/filter.js
generated
vendored
Normal file
34
node_modules/resolve/test/filter.js
generated
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
var path = require('path');
|
||||
var test = require('tape');
|
||||
var resolve = require('../');
|
||||
|
||||
test('filter', function (t) {
|
||||
t.plan(4);
|
||||
var dir = path.join(__dirname, 'resolver');
|
||||
var packageFilterArgs;
|
||||
resolve('./baz', {
|
||||
basedir: dir,
|
||||
packageFilter: function (pkg, pkgfile) {
|
||||
pkg.main = 'doom';
|
||||
packageFilterArgs = [pkg, pkgfile];
|
||||
return pkg;
|
||||
}
|
||||
}, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
|
||||
t.equal(res, path.join(dir, 'baz/doom.js'), 'changing the package "main" works');
|
||||
|
||||
var packageData = packageFilterArgs[0];
|
||||
t.equal(pkg, packageData, 'first packageFilter argument is "pkg"');
|
||||
t.equal(packageData.main, 'doom', 'package "main" was altered');
|
||||
|
||||
var packageFile = packageFilterArgs[1];
|
||||
t.equal(
|
||||
packageFile,
|
||||
path.join(dir, 'baz/package.json'),
|
||||
'second packageFilter argument is "pkgfile"'
|
||||
);
|
||||
|
||||
t.end();
|
||||
});
|
||||
});
|
26
node_modules/resolve/test/filter_sync.js
generated
vendored
Normal file
26
node_modules/resolve/test/filter_sync.js
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
var path = require('path');
|
||||
var test = require('tape');
|
||||
var resolve = require('../');
|
||||
|
||||
test('filter', function (t) {
|
||||
var dir = path.join(__dirname, 'resolver');
|
||||
var packageFilterArgs;
|
||||
var res = resolve.sync('./baz', {
|
||||
basedir: dir,
|
||||
packageFilter: function (pkg, dir) {
|
||||
pkg.main = 'doom';
|
||||
packageFilterArgs = [pkg, dir];
|
||||
return pkg;
|
||||
}
|
||||
});
|
||||
|
||||
t.equal(res, path.join(dir, 'baz/doom.js'), 'changing the package "main" works');
|
||||
|
||||
var packageData = packageFilterArgs[0];
|
||||
t.equal(packageData.main, 'doom', 'package "main" was altered');
|
||||
|
||||
var packageFile = packageFilterArgs[1];
|
||||
t.equal(packageFile, path.join(dir, 'baz'), 'second packageFilter argument is "dir"');
|
||||
|
||||
t.end();
|
||||
});
|
143
node_modules/resolve/test/mock.js
generated
vendored
Normal file
143
node_modules/resolve/test/mock.js
generated
vendored
Normal file
@@ -0,0 +1,143 @@
|
||||
var path = require('path');
|
||||
var test = require('tape');
|
||||
var resolve = require('../');
|
||||
|
||||
test('mock', function (t) {
|
||||
t.plan(8);
|
||||
|
||||
var files = {};
|
||||
files[path.resolve('/foo/bar/baz.js')] = 'beep';
|
||||
|
||||
function opts(basedir) {
|
||||
return {
|
||||
basedir: path.resolve(basedir),
|
||||
isFile: function (file, cb) {
|
||||
cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file)));
|
||||
},
|
||||
readFile: function (file, cb) {
|
||||
cb(null, files[path.resolve(file)]);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
resolve('./baz', opts('/foo/bar'), function (err, res, pkg) {
|
||||
if (err) return t.fail(err);
|
||||
t.equal(res, path.resolve('/foo/bar/baz.js'));
|
||||
t.equal(pkg, undefined);
|
||||
});
|
||||
|
||||
resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) {
|
||||
if (err) return t.fail(err);
|
||||
t.equal(res, path.resolve('/foo/bar/baz.js'));
|
||||
t.equal(pkg, undefined);
|
||||
});
|
||||
|
||||
resolve('baz', opts('/foo/bar'), function (err, res) {
|
||||
t.equal(err.message, "Cannot find module 'baz' from '" + path.resolve('/foo/bar') + "'");
|
||||
t.equal(err.code, 'MODULE_NOT_FOUND');
|
||||
});
|
||||
|
||||
resolve('../baz', opts('/foo/bar'), function (err, res) {
|
||||
t.equal(err.message, "Cannot find module '../baz' from '" + path.resolve('/foo/bar') + "'");
|
||||
t.equal(err.code, 'MODULE_NOT_FOUND');
|
||||
});
|
||||
});
|
||||
|
||||
test('mock from package', function (t) {
|
||||
t.plan(8);
|
||||
|
||||
var files = {};
|
||||
files[path.resolve('/foo/bar/baz.js')] = 'beep';
|
||||
|
||||
function opts(basedir) {
|
||||
return {
|
||||
basedir: path.resolve(basedir),
|
||||
isFile: function (file, cb) {
|
||||
cb(null, Object.prototype.hasOwnProperty.call(files, file));
|
||||
},
|
||||
'package': { main: 'bar' },
|
||||
readFile: function (file, cb) {
|
||||
cb(null, files[file]);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
resolve('./baz', opts('/foo/bar'), function (err, res, pkg) {
|
||||
if (err) return t.fail(err);
|
||||
t.equal(res, path.resolve('/foo/bar/baz.js'));
|
||||
t.equal(pkg && pkg.main, 'bar');
|
||||
});
|
||||
|
||||
resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) {
|
||||
if (err) return t.fail(err);
|
||||
t.equal(res, path.resolve('/foo/bar/baz.js'));
|
||||
t.equal(pkg && pkg.main, 'bar');
|
||||
});
|
||||
|
||||
resolve('baz', opts('/foo/bar'), function (err, res) {
|
||||
t.equal(err.message, "Cannot find module 'baz' from '" + path.resolve('/foo/bar') + "'");
|
||||
t.equal(err.code, 'MODULE_NOT_FOUND');
|
||||
});
|
||||
|
||||
resolve('../baz', opts('/foo/bar'), function (err, res) {
|
||||
t.equal(err.message, "Cannot find module '../baz' from '" + path.resolve('/foo/bar') + "'");
|
||||
t.equal(err.code, 'MODULE_NOT_FOUND');
|
||||
});
|
||||
});
|
||||
|
||||
test('mock package', function (t) {
|
||||
t.plan(2);
|
||||
|
||||
var files = {};
|
||||
files[path.resolve('/foo/node_modules/bar/baz.js')] = 'beep';
|
||||
files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({
|
||||
main: './baz.js'
|
||||
});
|
||||
|
||||
function opts(basedir) {
|
||||
return {
|
||||
basedir: path.resolve(basedir),
|
||||
isFile: function (file, cb) {
|
||||
cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file)));
|
||||
},
|
||||
readFile: function (file, cb) {
|
||||
cb(null, files[path.resolve(file)]);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
resolve('bar', opts('/foo'), function (err, res, pkg) {
|
||||
if (err) return t.fail(err);
|
||||
t.equal(res, path.resolve('/foo/node_modules/bar/baz.js'));
|
||||
t.equal(pkg && pkg.main, './baz.js');
|
||||
});
|
||||
});
|
||||
|
||||
test('mock package from package', function (t) {
|
||||
t.plan(2);
|
||||
|
||||
var files = {};
|
||||
files[path.resolve('/foo/node_modules/bar/baz.js')] = 'beep';
|
||||
files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({
|
||||
main: './baz.js'
|
||||
});
|
||||
|
||||
function opts(basedir) {
|
||||
return {
|
||||
basedir: path.resolve(basedir),
|
||||
isFile: function (file, cb) {
|
||||
cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file)));
|
||||
},
|
||||
'package': { main: 'bar' },
|
||||
readFile: function (file, cb) {
|
||||
cb(null, files[path.resolve(file)]);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
resolve('bar', opts('/foo'), function (err, res, pkg) {
|
||||
if (err) return t.fail(err);
|
||||
t.equal(res, path.resolve('/foo/node_modules/bar/baz.js'));
|
||||
t.equal(pkg && pkg.main, './baz.js');
|
||||
});
|
||||
});
|
67
node_modules/resolve/test/mock_sync.js
generated
vendored
Normal file
67
node_modules/resolve/test/mock_sync.js
generated
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
var path = require('path');
|
||||
var test = require('tape');
|
||||
var resolve = require('../');
|
||||
|
||||
test('mock', function (t) {
|
||||
t.plan(4);
|
||||
|
||||
var files = {};
|
||||
files[path.resolve('/foo/bar/baz.js')] = 'beep';
|
||||
|
||||
function opts(basedir) {
|
||||
return {
|
||||
basedir: path.resolve(basedir),
|
||||
isFile: function (file) {
|
||||
return Object.prototype.hasOwnProperty.call(files, file);
|
||||
},
|
||||
readFileSync: function (file) {
|
||||
return files[file];
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
t.equal(
|
||||
resolve.sync('./baz', opts('/foo/bar')),
|
||||
path.resolve('/foo/bar/baz.js')
|
||||
);
|
||||
|
||||
t.equal(
|
||||
resolve.sync('./baz.js', opts('/foo/bar')),
|
||||
path.resolve('/foo/bar/baz.js')
|
||||
);
|
||||
|
||||
t.throws(function () {
|
||||
resolve.sync('baz', opts('/foo/bar'));
|
||||
});
|
||||
|
||||
t.throws(function () {
|
||||
resolve.sync('../baz', opts('/foo/bar'));
|
||||
});
|
||||
});
|
||||
|
||||
test('mock package', function (t) {
|
||||
t.plan(1);
|
||||
|
||||
var files = {};
|
||||
files[path.resolve('/foo/node_modules/bar/baz.js')] = 'beep';
|
||||
files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({
|
||||
main: './baz.js'
|
||||
});
|
||||
|
||||
function opts(basedir) {
|
||||
return {
|
||||
basedir: path.resolve(basedir),
|
||||
isFile: function (file) {
|
||||
return Object.prototype.hasOwnProperty.call(files, file);
|
||||
},
|
||||
readFileSync: function (file) {
|
||||
return files[file];
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
t.equal(
|
||||
resolve.sync('bar', opts('/foo')),
|
||||
path.resolve('/foo/node_modules/bar/baz.js')
|
||||
);
|
||||
});
|
56
node_modules/resolve/test/module_dir.js
generated
vendored
Normal file
56
node_modules/resolve/test/module_dir.js
generated
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
var path = require('path');
|
||||
var test = require('tape');
|
||||
var resolve = require('../');
|
||||
|
||||
test('moduleDirectory strings', function (t) {
|
||||
t.plan(4);
|
||||
var dir = path.join(__dirname, 'module_dir');
|
||||
var xopts = {
|
||||
basedir: dir,
|
||||
moduleDirectory: 'xmodules'
|
||||
};
|
||||
resolve('aaa', xopts, function (err, res, pkg) {
|
||||
t.ifError(err);
|
||||
t.equal(res, path.join(dir, '/xmodules/aaa/index.js'));
|
||||
});
|
||||
|
||||
var yopts = {
|
||||
basedir: dir,
|
||||
moduleDirectory: 'ymodules'
|
||||
};
|
||||
resolve('aaa', yopts, function (err, res, pkg) {
|
||||
t.ifError(err);
|
||||
t.equal(res, path.join(dir, '/ymodules/aaa/index.js'));
|
||||
});
|
||||
});
|
||||
|
||||
test('moduleDirectory array', function (t) {
|
||||
t.plan(6);
|
||||
var dir = path.join(__dirname, 'module_dir');
|
||||
var aopts = {
|
||||
basedir: dir,
|
||||
moduleDirectory: ['xmodules', 'ymodules', 'zmodules']
|
||||
};
|
||||
resolve('aaa', aopts, function (err, res, pkg) {
|
||||
t.ifError(err);
|
||||
t.equal(res, path.join(dir, '/xmodules/aaa/index.js'));
|
||||
});
|
||||
|
||||
var bopts = {
|
||||
basedir: dir,
|
||||
moduleDirectory: ['zmodules', 'ymodules', 'xmodules']
|
||||
};
|
||||
resolve('aaa', bopts, function (err, res, pkg) {
|
||||
t.ifError(err);
|
||||
t.equal(res, path.join(dir, '/ymodules/aaa/index.js'));
|
||||
});
|
||||
|
||||
var copts = {
|
||||
basedir: dir,
|
||||
moduleDirectory: ['xmodules', 'ymodules', 'zmodules']
|
||||
};
|
||||
resolve('bbb', copts, function (err, res, pkg) {
|
||||
t.ifError(err);
|
||||
t.equal(res, path.join(dir, '/zmodules/bbb/main.js'));
|
||||
});
|
||||
});
|
1
node_modules/resolve/test/module_dir/xmodules/aaa/index.js
generated
vendored
Normal file
1
node_modules/resolve/test/module_dir/xmodules/aaa/index.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = function (x) { return x * 100; };
|
1
node_modules/resolve/test/module_dir/ymodules/aaa/index.js
generated
vendored
Normal file
1
node_modules/resolve/test/module_dir/ymodules/aaa/index.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = function (x) { return x + 100; };
|
1
node_modules/resolve/test/module_dir/zmodules/bbb/main.js
generated
vendored
Normal file
1
node_modules/resolve/test/module_dir/zmodules/bbb/main.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = function (n) { return n * 111; };
|
3
node_modules/resolve/test/module_dir/zmodules/bbb/package.json
generated
vendored
Normal file
3
node_modules/resolve/test/module_dir/zmodules/bbb/package.json
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"main": "main.js"
|
||||
}
|
93
node_modules/resolve/test/node-modules-paths.js
generated
vendored
Normal file
93
node_modules/resolve/test/node-modules-paths.js
generated
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
var test = require('tape');
|
||||
var path = require('path');
|
||||
var parse = path.parse || require('path-parse');
|
||||
var keys = require('object-keys');
|
||||
|
||||
var nodeModulesPaths = require('../lib/node-modules-paths');
|
||||
|
||||
var verifyDirs = function verifyDirs(t, start, dirs, moduleDirectories, paths) {
|
||||
var moduleDirs = [].concat(moduleDirectories || 'node_modules');
|
||||
|
||||
var foundModuleDirs = {};
|
||||
var uniqueDirs = {};
|
||||
var parsedDirs = {};
|
||||
for (var i = 0; i < dirs.length; ++i) {
|
||||
var parsed = parse(dirs[i]);
|
||||
if (!foundModuleDirs[parsed.base]) { foundModuleDirs[parsed.base] = 0; }
|
||||
foundModuleDirs[parsed.base] += 1;
|
||||
parsedDirs[parsed.dir] = true;
|
||||
uniqueDirs[dirs[i]] = true;
|
||||
}
|
||||
t.equal(keys(parsedDirs).length >= start.split(path.sep).length, true, 'there are >= dirs than "start" has');
|
||||
var foundModuleDirNames = keys(foundModuleDirs);
|
||||
t.deepEqual(foundModuleDirNames, moduleDirs.concat(paths || []), 'all desired module dirs were found');
|
||||
t.equal(keys(uniqueDirs).length, dirs.length, 'all dirs provided were unique');
|
||||
|
||||
var counts = {};
|
||||
for (var j = 0; j < foundModuleDirNames.length; ++j) {
|
||||
counts[foundModuleDirs[j]] = true;
|
||||
}
|
||||
t.equal(keys(counts).length, 1, 'all found module directories had the same count');
|
||||
};
|
||||
|
||||
test('node-modules-paths', function (t) {
|
||||
t.test('no options', function (t) {
|
||||
var start = path.join(__dirname, 'resolver');
|
||||
var dirs = nodeModulesPaths(start);
|
||||
|
||||
verifyDirs(t, start, dirs);
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
t.test('empty options', function (t) {
|
||||
var start = path.join(__dirname, 'resolver');
|
||||
var dirs = nodeModulesPaths(start, {});
|
||||
|
||||
verifyDirs(t, start, dirs);
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
t.test('with paths option', function (t) {
|
||||
var start = path.join(__dirname, 'resolver');
|
||||
var paths = ['a', 'b'];
|
||||
var dirs = nodeModulesPaths(start, { paths: paths });
|
||||
|
||||
verifyDirs(t, start, dirs, null, paths);
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
t.test('with moduleDirectory option', function (t) {
|
||||
var start = path.join(__dirname, 'resolver');
|
||||
var moduleDirectory = 'not node modules';
|
||||
var dirs = nodeModulesPaths(start, { moduleDirectory: moduleDirectory });
|
||||
|
||||
verifyDirs(t, start, dirs, moduleDirectory);
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
t.test('with 1 moduleDirectory and paths options', function (t) {
|
||||
var start = path.join(__dirname, 'resolver');
|
||||
var paths = ['a', 'b'];
|
||||
var moduleDirectory = 'not node modules';
|
||||
var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectory });
|
||||
|
||||
verifyDirs(t, start, dirs, moduleDirectory, paths);
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
t.test('with 1+ moduleDirectory and paths options', function (t) {
|
||||
var start = path.join(__dirname, 'resolver');
|
||||
var paths = ['a', 'b'];
|
||||
var moduleDirectories = ['not node modules', 'other modules'];
|
||||
var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectories });
|
||||
|
||||
verifyDirs(t, start, dirs, moduleDirectories, paths);
|
||||
|
||||
t.end();
|
||||
});
|
||||
});
|
49
node_modules/resolve/test/node_path.js
generated
vendored
Normal file
49
node_modules/resolve/test/node_path.js
generated
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
var path = require('path');
|
||||
var test = require('tape');
|
||||
var resolve = require('../');
|
||||
|
||||
test('$NODE_PATH', function (t) {
|
||||
t.plan(4);
|
||||
|
||||
resolve('aaa', {
|
||||
paths: [
|
||||
path.join(__dirname, '/node_path/x'),
|
||||
path.join(__dirname, '/node_path/y')
|
||||
],
|
||||
basedir: __dirname
|
||||
}, function (err, res) {
|
||||
t.equal(res, path.join(__dirname, '/node_path/x/aaa/index.js'));
|
||||
});
|
||||
|
||||
resolve('bbb', {
|
||||
paths: [
|
||||
path.join(__dirname, '/node_path/x'),
|
||||
path.join(__dirname, '/node_path/y')
|
||||
],
|
||||
basedir: __dirname
|
||||
}, function (err, res) {
|
||||
t.equal(res, path.join(__dirname, '/node_path/y/bbb/index.js'));
|
||||
});
|
||||
|
||||
resolve('ccc', {
|
||||
paths: [
|
||||
path.join(__dirname, '/node_path/x'),
|
||||
path.join(__dirname, '/node_path/y')
|
||||
],
|
||||
basedir: __dirname
|
||||
}, function (err, res) {
|
||||
t.equal(res, path.join(__dirname, '/node_path/x/ccc/index.js'));
|
||||
});
|
||||
|
||||
// ensure that relative paths still resolve against the
|
||||
// regular `node_modules` correctly
|
||||
resolve('tap', {
|
||||
paths: [
|
||||
'node_path'
|
||||
],
|
||||
basedir: 'node_path/x'
|
||||
}, function (err, res) {
|
||||
var root = require('tap/package.json').main;
|
||||
t.equal(res, path.resolve(__dirname, '..', 'node_modules/tap', root));
|
||||
});
|
||||
});
|
1
node_modules/resolve/test/node_path/x/aaa/index.js
generated
vendored
Normal file
1
node_modules/resolve/test/node_path/x/aaa/index.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = 'A';
|
1
node_modules/resolve/test/node_path/x/ccc/index.js
generated
vendored
Normal file
1
node_modules/resolve/test/node_path/x/ccc/index.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = 'C';
|
1
node_modules/resolve/test/node_path/y/bbb/index.js
generated
vendored
Normal file
1
node_modules/resolve/test/node_path/y/bbb/index.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = 'B';
|
1
node_modules/resolve/test/node_path/y/ccc/index.js
generated
vendored
Normal file
1
node_modules/resolve/test/node_path/y/ccc/index.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = 'CY';
|
9
node_modules/resolve/test/nonstring.js
generated
vendored
Normal file
9
node_modules/resolve/test/nonstring.js
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
var test = require('tape');
|
||||
var resolve = require('../');
|
||||
|
||||
test('nonstring', function (t) {
|
||||
t.plan(1);
|
||||
resolve(555, function (err, res, pkg) {
|
||||
t.ok(err);
|
||||
});
|
||||
});
|
75
node_modules/resolve/test/pathfilter.js
generated
vendored
Normal file
75
node_modules/resolve/test/pathfilter.js
generated
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
var path = require('path');
|
||||
var test = require('tape');
|
||||
var resolve = require('../');
|
||||
|
||||
var resolverDir = path.join(__dirname, '/pathfilter/deep_ref');
|
||||
|
||||
var pathFilterFactory = function (t) {
|
||||
return function (pkg, x, remainder) {
|
||||
t.equal(pkg.version, '1.2.3');
|
||||
t.equal(x, path.join(resolverDir, 'node_modules/deep/ref'));
|
||||
t.equal(remainder, 'ref');
|
||||
return 'alt';
|
||||
};
|
||||
};
|
||||
|
||||
test('#62: deep module references and the pathFilter', function (t) {
|
||||
t.test('deep/ref.js', function (st) {
|
||||
st.plan(3);
|
||||
|
||||
resolve('deep/ref', { basedir: resolverDir }, function (err, res, pkg) {
|
||||
if (err) st.fail(err);
|
||||
|
||||
st.equal(pkg.version, '1.2.3');
|
||||
st.equal(res, path.join(resolverDir, 'node_modules/deep/ref.js'));
|
||||
});
|
||||
|
||||
var res = resolve.sync('deep/ref', { basedir: resolverDir });
|
||||
st.equal(res, path.join(resolverDir, 'node_modules/deep/ref.js'));
|
||||
});
|
||||
|
||||
t.test('deep/deeper/ref', function (st) {
|
||||
st.plan(4);
|
||||
|
||||
resolve(
|
||||
'deep/deeper/ref',
|
||||
{ basedir: resolverDir },
|
||||
function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
st.notEqual(pkg, undefined);
|
||||
st.equal(pkg.version, '1.2.3');
|
||||
st.equal(res, path.join(resolverDir, 'node_modules/deep/deeper/ref.js'));
|
||||
}
|
||||
);
|
||||
|
||||
var res = resolve.sync(
|
||||
'deep/deeper/ref',
|
||||
{ basedir: resolverDir }
|
||||
);
|
||||
st.equal(res, path.join(resolverDir, 'node_modules/deep/deeper/ref.js'));
|
||||
});
|
||||
|
||||
t.test('deep/ref alt', function (st) {
|
||||
st.plan(8);
|
||||
|
||||
var pathFilter = pathFilterFactory(st);
|
||||
|
||||
var res = resolve.sync(
|
||||
'deep/ref',
|
||||
{ basedir: resolverDir, pathFilter: pathFilter }
|
||||
);
|
||||
st.equal(res, path.join(resolverDir, 'node_modules/deep/alt.js'));
|
||||
|
||||
resolve(
|
||||
'deep/ref',
|
||||
{ basedir: resolverDir, pathFilter: pathFilter },
|
||||
function (err, res, pkg) {
|
||||
if (err) st.fail(err);
|
||||
st.equal(res, path.join(resolverDir, 'node_modules/deep/alt.js'));
|
||||
st.end();
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
t.end();
|
||||
});
|
0
node_modules/resolve/test/pathfilter/deep_ref/main.js
generated
vendored
Normal file
0
node_modules/resolve/test/pathfilter/deep_ref/main.js
generated
vendored
Normal file
23
node_modules/resolve/test/precedence.js
generated
vendored
Normal file
23
node_modules/resolve/test/precedence.js
generated
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
var path = require('path');
|
||||
var test = require('tape');
|
||||
var resolve = require('../');
|
||||
|
||||
test('precedence', function (t) {
|
||||
t.plan(3);
|
||||
var dir = path.join(__dirname, 'precedence/aaa');
|
||||
|
||||
resolve('./', { basedir: dir }, function (err, res, pkg) {
|
||||
t.ifError(err);
|
||||
t.equal(res, path.join(dir, 'index.js'));
|
||||
t.equal(pkg.name, 'resolve');
|
||||
});
|
||||
});
|
||||
|
||||
test('./ should not load ${dir}.js', function (t) { // eslint-disable-line no-template-curly-in-string
|
||||
t.plan(1);
|
||||
var dir = path.join(__dirname, 'precedence/bbb');
|
||||
|
||||
resolve('./', { basedir: dir }, function (err, res, pkg) {
|
||||
t.ok(err);
|
||||
});
|
||||
});
|
1
node_modules/resolve/test/precedence/aaa.js
generated
vendored
Normal file
1
node_modules/resolve/test/precedence/aaa.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = 'wtf';
|
1
node_modules/resolve/test/precedence/aaa/index.js
generated
vendored
Normal file
1
node_modules/resolve/test/precedence/aaa/index.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = 'okok';
|
1
node_modules/resolve/test/precedence/aaa/main.js
generated
vendored
Normal file
1
node_modules/resolve/test/precedence/aaa/main.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
console.log(require('./'));
|
1
node_modules/resolve/test/precedence/bbb.js
generated
vendored
Normal file
1
node_modules/resolve/test/precedence/bbb.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = '>_<';
|
1
node_modules/resolve/test/precedence/bbb/main.js
generated
vendored
Normal file
1
node_modules/resolve/test/precedence/bbb/main.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
console.log(require('./')); // should throw
|
387
node_modules/resolve/test/resolver.js
generated
vendored
Normal file
387
node_modules/resolve/test/resolver.js
generated
vendored
Normal file
@@ -0,0 +1,387 @@
|
||||
var path = require('path');
|
||||
var test = require('tape');
|
||||
var resolve = require('../');
|
||||
|
||||
test('async foo', function (t) {
|
||||
t.plan(10);
|
||||
var dir = path.join(__dirname, 'resolver');
|
||||
|
||||
resolve('./foo', { basedir: dir }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'foo.js'));
|
||||
t.equal(pkg && pkg.name, 'resolve');
|
||||
});
|
||||
|
||||
resolve('./foo.js', { basedir: dir }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'foo.js'));
|
||||
t.equal(pkg && pkg.name, 'resolve');
|
||||
});
|
||||
|
||||
resolve('./foo', { basedir: dir, 'package': { main: 'resolver' } }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'foo.js'));
|
||||
t.equal(pkg && pkg.main, 'resolver');
|
||||
});
|
||||
|
||||
resolve('./foo.js', { basedir: dir, 'package': { main: 'resolver' } }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'foo.js'));
|
||||
t.equal(pkg.main, 'resolver');
|
||||
});
|
||||
|
||||
resolve('foo', { basedir: dir }, function (err) {
|
||||
t.equal(err.message, "Cannot find module 'foo' from '" + path.resolve(dir) + "'");
|
||||
t.equal(err.code, 'MODULE_NOT_FOUND');
|
||||
});
|
||||
});
|
||||
|
||||
test('bar', function (t) {
|
||||
t.plan(6);
|
||||
var dir = path.join(__dirname, 'resolver');
|
||||
|
||||
resolve('foo', { basedir: dir + '/bar' }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'bar/node_modules/foo/index.js'));
|
||||
t.equal(pkg, undefined);
|
||||
});
|
||||
|
||||
resolve('foo', { basedir: dir + '/bar' }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'bar/node_modules/foo/index.js'));
|
||||
t.equal(pkg, undefined);
|
||||
});
|
||||
|
||||
resolve('foo', { basedir: dir + '/bar', 'package': { main: 'bar' } }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'bar/node_modules/foo/index.js'));
|
||||
t.equal(pkg.main, 'bar');
|
||||
});
|
||||
});
|
||||
|
||||
test('baz', function (t) {
|
||||
t.plan(4);
|
||||
var dir = path.join(__dirname, 'resolver');
|
||||
|
||||
resolve('./baz', { basedir: dir }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'baz/quux.js'));
|
||||
t.equal(pkg.main, 'quux.js');
|
||||
});
|
||||
|
||||
resolve('./baz', { basedir: dir, 'package': { main: 'resolver' } }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'baz/quux.js'));
|
||||
t.equal(pkg.main, 'quux.js');
|
||||
});
|
||||
});
|
||||
|
||||
test('biz', function (t) {
|
||||
t.plan(24);
|
||||
var dir = path.join(__dirname, 'resolver/biz/node_modules');
|
||||
|
||||
resolve('./grux', { basedir: dir }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'grux/index.js'));
|
||||
t.equal(pkg, undefined);
|
||||
});
|
||||
|
||||
resolve('./grux', { basedir: dir, 'package': { main: 'biz' } }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'grux/index.js'));
|
||||
t.equal(pkg.main, 'biz');
|
||||
});
|
||||
|
||||
resolve('./garply', { basedir: dir }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'garply/lib/index.js'));
|
||||
t.equal(pkg.main, './lib');
|
||||
});
|
||||
|
||||
resolve('./garply', { basedir: dir, 'package': { main: 'biz' } }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'garply/lib/index.js'));
|
||||
t.equal(pkg.main, './lib');
|
||||
});
|
||||
|
||||
resolve('tiv', { basedir: dir + '/grux' }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'tiv/index.js'));
|
||||
t.equal(pkg, undefined);
|
||||
});
|
||||
|
||||
resolve('tiv', { basedir: dir + '/grux', 'package': { main: 'grux' } }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'tiv/index.js'));
|
||||
t.equal(pkg.main, 'grux');
|
||||
});
|
||||
|
||||
resolve('tiv', { basedir: dir + '/garply' }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'tiv/index.js'));
|
||||
t.equal(pkg, undefined);
|
||||
});
|
||||
|
||||
resolve('tiv', { basedir: dir + '/garply', 'package': { main: './lib' } }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'tiv/index.js'));
|
||||
t.equal(pkg.main, './lib');
|
||||
});
|
||||
|
||||
resolve('grux', { basedir: dir + '/tiv' }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'grux/index.js'));
|
||||
t.equal(pkg, undefined);
|
||||
});
|
||||
|
||||
resolve('grux', { basedir: dir + '/tiv', 'package': { main: 'tiv' } }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'grux/index.js'));
|
||||
t.equal(pkg.main, 'tiv');
|
||||
});
|
||||
|
||||
resolve('garply', { basedir: dir + '/tiv' }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'garply/lib/index.js'));
|
||||
t.equal(pkg.main, './lib');
|
||||
});
|
||||
|
||||
resolve('garply', { basedir: dir + '/tiv', 'package': { main: 'tiv' } }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'garply/lib/index.js'));
|
||||
t.equal(pkg.main, './lib');
|
||||
});
|
||||
});
|
||||
|
||||
test('quux', function (t) {
|
||||
t.plan(2);
|
||||
var dir = path.join(__dirname, 'resolver/quux');
|
||||
|
||||
resolve('./foo', { basedir: dir, 'package': { main: 'quux' } }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'foo/index.js'));
|
||||
t.equal(pkg.main, 'quux');
|
||||
});
|
||||
});
|
||||
|
||||
test('normalize', function (t) {
|
||||
t.plan(2);
|
||||
var dir = path.join(__dirname, 'resolver/biz/node_modules/grux');
|
||||
|
||||
resolve('../grux', { basedir: dir }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'index.js'));
|
||||
t.equal(pkg, undefined);
|
||||
});
|
||||
});
|
||||
|
||||
test('cup', function (t) {
|
||||
t.plan(4);
|
||||
var dir = path.join(__dirname, 'resolver');
|
||||
|
||||
resolve('./cup', { basedir: dir, extensions: ['.js', '.coffee'] }, function (err, res) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'cup.coffee'));
|
||||
});
|
||||
|
||||
resolve('./cup.coffee', { basedir: dir }, function (err, res) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'cup.coffee'));
|
||||
});
|
||||
|
||||
resolve('./cup', { basedir: dir, extensions: ['.js'] }, function (err, res) {
|
||||
t.equal(err.message, "Cannot find module './cup' from '" + path.resolve(dir) + "'");
|
||||
t.equal(err.code, 'MODULE_NOT_FOUND');
|
||||
});
|
||||
});
|
||||
|
||||
test('mug', function (t) {
|
||||
t.plan(3);
|
||||
var dir = path.join(__dirname, 'resolver');
|
||||
|
||||
resolve('./mug', { basedir: dir }, function (err, res) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'mug.js'));
|
||||
});
|
||||
|
||||
resolve('./mug', { basedir: dir, extensions: ['.coffee', '.js'] }, function (err, res) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, '/mug.coffee'));
|
||||
});
|
||||
|
||||
resolve('./mug', { basedir: dir, extensions: ['.js', '.coffee'] }, function (err, res) {
|
||||
t.equal(res, path.join(dir, '/mug.js'));
|
||||
});
|
||||
});
|
||||
|
||||
test('other path', function (t) {
|
||||
t.plan(6);
|
||||
var resolverDir = path.join(__dirname, 'resolver');
|
||||
var dir = path.join(resolverDir, 'bar');
|
||||
var otherDir = path.join(resolverDir, 'other_path');
|
||||
|
||||
resolve('root', { basedir: dir, paths: [otherDir] }, function (err, res) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(resolverDir, 'other_path/root.js'));
|
||||
});
|
||||
|
||||
resolve('lib/other-lib', { basedir: dir, paths: [otherDir] }, function (err, res) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(resolverDir, 'other_path/lib/other-lib.js'));
|
||||
});
|
||||
|
||||
resolve('root', { basedir: dir }, function (err, res) {
|
||||
t.equal(err.message, "Cannot find module 'root' from '" + path.resolve(dir) + "'");
|
||||
t.equal(err.code, 'MODULE_NOT_FOUND');
|
||||
});
|
||||
|
||||
resolve('zzz', { basedir: dir, paths: [otherDir] }, function (err, res) {
|
||||
t.equal(err.message, "Cannot find module 'zzz' from '" + path.resolve(dir) + "'");
|
||||
t.equal(err.code, 'MODULE_NOT_FOUND');
|
||||
});
|
||||
});
|
||||
|
||||
test('incorrect main', function (t) {
|
||||
t.plan(1);
|
||||
|
||||
var resolverDir = path.join(__dirname, 'resolver');
|
||||
var dir = path.join(resolverDir, 'incorrect_main');
|
||||
|
||||
resolve('./incorrect_main', { basedir: resolverDir }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'index.js'));
|
||||
});
|
||||
});
|
||||
|
||||
test('without basedir', function (t) {
|
||||
t.plan(1);
|
||||
|
||||
var dir = path.join(__dirname, 'resolver/without_basedir');
|
||||
var tester = require(path.join(dir, 'main.js'));
|
||||
|
||||
tester(t, function (err, res, pkg) {
|
||||
if (err) {
|
||||
t.fail(err);
|
||||
} else {
|
||||
t.equal(res, path.join(dir, 'node_modules/mymodule.js'));
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
test('#25: node modules with the same name as node stdlib modules', function (t) {
|
||||
t.plan(1);
|
||||
|
||||
var resolverDir = path.join(__dirname, 'resolver/punycode');
|
||||
|
||||
resolve('punycode', { basedir: resolverDir }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(resolverDir, 'node_modules/punycode/index.js'));
|
||||
});
|
||||
});
|
||||
|
||||
test('#52 - incorrectly resolves module-paths like "./someFolder/" when there is a file of the same name', function (t) {
|
||||
t.plan(2);
|
||||
|
||||
var dir = path.join(__dirname, 'resolver');
|
||||
|
||||
resolve('./foo', { basedir: path.join(dir, 'same_names') }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'same_names/foo.js'));
|
||||
});
|
||||
|
||||
resolve('./foo/', { basedir: path.join(dir, 'same_names') }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'same_names/foo/index.js'));
|
||||
});
|
||||
});
|
||||
|
||||
test('async: #121 - treating an existing file as a dir when no basedir', function (t) {
|
||||
var testFile = path.basename(__filename);
|
||||
|
||||
t.test('sanity check', function (st) {
|
||||
st.plan(1);
|
||||
resolve('./' + testFile, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
st.equal(res, __filename, 'sanity check');
|
||||
});
|
||||
});
|
||||
|
||||
t.test('with a fake directory', function (st) {
|
||||
st.plan(4);
|
||||
|
||||
resolve('./' + testFile + '/blah', function (err, res, pkg) {
|
||||
st.ok(err, 'there is an error');
|
||||
st.notOk(res, 'no result');
|
||||
|
||||
st.equal(err && err.code, 'MODULE_NOT_FOUND', 'error code matches require.resolve');
|
||||
st.equal(
|
||||
err && err.message,
|
||||
'Cannot find module \'./' + testFile + '/blah\' from \'' + __dirname + '\'',
|
||||
'can not find nonexistent module'
|
||||
);
|
||||
st.end();
|
||||
});
|
||||
});
|
||||
|
||||
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();
|
||||
});
|
||||
});
|
||||
|
||||
test('not a directory', function (t) {
|
||||
t.plan(5);
|
||||
var path = './foo';
|
||||
resolve(path, { basedir: __filename }, function (err, res, pkg) {
|
||||
t.ok(err, 'a non-directory errors');
|
||||
t.equal(arguments.length, 1);
|
||||
t.equal(res, undefined);
|
||||
t.equal(pkg, undefined);
|
||||
|
||||
t.equal(err && err.message, 'Cannot find module \'' + path + "' from '" + __filename + "'");
|
||||
});
|
||||
});
|
||||
|
||||
test('browser field in package.json', function (t) {
|
||||
t.plan(3);
|
||||
|
||||
var dir = path.join(__dirname, 'resolver');
|
||||
resolve(
|
||||
'./browser_field',
|
||||
{
|
||||
basedir: dir,
|
||||
packageFilter: function packageFilter(pkg) {
|
||||
if (pkg.browser) {
|
||||
pkg.main = pkg.browser;
|
||||
delete pkg.browser;
|
||||
}
|
||||
return pkg;
|
||||
}
|
||||
},
|
||||
function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(res, path.join(dir, 'browser_field', 'b.js'));
|
||||
t.equal(pkg && pkg.main, 'b');
|
||||
t.equal(pkg && pkg.browser, undefined);
|
||||
}
|
||||
);
|
||||
});
|
0
node_modules/resolve/test/resolver/baz/doom.js
generated
vendored
Normal file
0
node_modules/resolve/test/resolver/baz/doom.js
generated
vendored
Normal file
3
node_modules/resolve/test/resolver/baz/package.json
generated
vendored
Normal file
3
node_modules/resolve/test/resolver/baz/package.json
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"main": "quux.js"
|
||||
}
|
1
node_modules/resolve/test/resolver/baz/quux.js
generated
vendored
Normal file
1
node_modules/resolve/test/resolver/baz/quux.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = 1;
|
0
node_modules/resolve/test/resolver/browser_field/a.js
generated
vendored
Normal file
0
node_modules/resolve/test/resolver/browser_field/a.js
generated
vendored
Normal file
0
node_modules/resolve/test/resolver/browser_field/b.js
generated
vendored
Normal file
0
node_modules/resolve/test/resolver/browser_field/b.js
generated
vendored
Normal file
5
node_modules/resolve/test/resolver/browser_field/package.json
generated
vendored
Normal file
5
node_modules/resolve/test/resolver/browser_field/package.json
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "browser_field",
|
||||
"main": "a",
|
||||
"browser": "b"
|
||||
}
|
1
node_modules/resolve/test/resolver/cup.coffee
generated
vendored
Normal file
1
node_modules/resolve/test/resolver/cup.coffee
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
|
1
node_modules/resolve/test/resolver/dot_main/index.js
generated
vendored
Normal file
1
node_modules/resolve/test/resolver/dot_main/index.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = 1;
|
3
node_modules/resolve/test/resolver/dot_main/package.json
generated
vendored
Normal file
3
node_modules/resolve/test/resolver/dot_main/package.json
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"main": "."
|
||||
}
|
1
node_modules/resolve/test/resolver/dot_slash_main/index.js
generated
vendored
Normal file
1
node_modules/resolve/test/resolver/dot_slash_main/index.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = 1;
|
3
node_modules/resolve/test/resolver/dot_slash_main/package.json
generated
vendored
Normal file
3
node_modules/resolve/test/resolver/dot_slash_main/package.json
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"main": "./"
|
||||
}
|
1
node_modules/resolve/test/resolver/foo.js
generated
vendored
Normal file
1
node_modules/resolve/test/resolver/foo.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = 1;
|
2
node_modules/resolve/test/resolver/incorrect_main/index.js
generated
vendored
Normal file
2
node_modules/resolve/test/resolver/incorrect_main/index.js
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
// this is the actual main file 'index.js', not 'wrong.js' like the package.json would indicate
|
||||
module.exports = 1;
|
3
node_modules/resolve/test/resolver/incorrect_main/package.json
generated
vendored
Normal file
3
node_modules/resolve/test/resolver/incorrect_main/package.json
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"main": "wrong.js"
|
||||
}
|
0
node_modules/resolve/test/resolver/mug.coffee
generated
vendored
Normal file
0
node_modules/resolve/test/resolver/mug.coffee
generated
vendored
Normal file
0
node_modules/resolve/test/resolver/mug.js
generated
vendored
Normal file
0
node_modules/resolve/test/resolver/mug.js
generated
vendored
Normal file
0
node_modules/resolve/test/resolver/other_path/lib/other-lib.js
generated
vendored
Normal file
0
node_modules/resolve/test/resolver/other_path/lib/other-lib.js
generated
vendored
Normal file
0
node_modules/resolve/test/resolver/other_path/root.js
generated
vendored
Normal file
0
node_modules/resolve/test/resolver/other_path/root.js
generated
vendored
Normal file
1
node_modules/resolve/test/resolver/quux/foo/index.js
generated
vendored
Normal file
1
node_modules/resolve/test/resolver/quux/foo/index.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = 1;
|
1
node_modules/resolve/test/resolver/same_names/foo.js
generated
vendored
Normal file
1
node_modules/resolve/test/resolver/same_names/foo.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = 42;
|
1
node_modules/resolve/test/resolver/same_names/foo/index.js
generated
vendored
Normal file
1
node_modules/resolve/test/resolver/same_names/foo/index.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = 1;
|
0
node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js
generated
vendored
Normal file
0
node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js
generated
vendored
Normal file
0
node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep
generated
vendored
Normal file
0
node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep
generated
vendored
Normal file
5
node_modules/resolve/test/resolver/without_basedir/main.js
generated
vendored
Normal file
5
node_modules/resolve/test/resolver/without_basedir/main.js
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
var resolve = require('../../../');
|
||||
|
||||
module.exports = function (t, cb) {
|
||||
resolve('mymodule', null, cb);
|
||||
};
|
295
node_modules/resolve/test/resolver_sync.js
generated
vendored
Normal file
295
node_modules/resolve/test/resolver_sync.js
generated
vendored
Normal file
@@ -0,0 +1,295 @@
|
||||
var path = require('path');
|
||||
var test = require('tape');
|
||||
var resolve = require('../');
|
||||
|
||||
test('foo', function (t) {
|
||||
var dir = path.join(__dirname, 'resolver');
|
||||
|
||||
t.equal(
|
||||
resolve.sync('./foo', { basedir: dir }),
|
||||
path.join(dir, 'foo.js')
|
||||
);
|
||||
|
||||
t.equal(
|
||||
resolve.sync('./foo.js', { basedir: dir }),
|
||||
path.join(dir, 'foo.js')
|
||||
);
|
||||
|
||||
t.throws(function () {
|
||||
resolve.sync('foo', { basedir: dir });
|
||||
});
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('bar', function (t) {
|
||||
var dir = path.join(__dirname, 'resolver');
|
||||
|
||||
t.equal(
|
||||
resolve.sync('foo', { basedir: path.join(dir, 'bar') }),
|
||||
path.join(dir, 'bar/node_modules/foo/index.js')
|
||||
);
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('baz', function (t) {
|
||||
var dir = path.join(__dirname, 'resolver');
|
||||
|
||||
t.equal(
|
||||
resolve.sync('./baz', { basedir: dir }),
|
||||
path.join(dir, 'baz/quux.js')
|
||||
);
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('biz', function (t) {
|
||||
var dir = path.join(__dirname, 'resolver/biz/node_modules');
|
||||
t.equal(
|
||||
resolve.sync('./grux', { basedir: dir }),
|
||||
path.join(dir, 'grux/index.js')
|
||||
);
|
||||
|
||||
t.equal(
|
||||
resolve.sync('tiv', { basedir: path.join(dir, 'grux') }),
|
||||
path.join(dir, 'tiv/index.js')
|
||||
);
|
||||
|
||||
t.equal(
|
||||
resolve.sync('grux', { basedir: path.join(dir, 'tiv') }),
|
||||
path.join(dir, 'grux/index.js')
|
||||
);
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('normalize', function (t) {
|
||||
var dir = path.join(__dirname, 'resolver/biz/node_modules/grux');
|
||||
t.equal(
|
||||
resolve.sync('../grux', { basedir: dir }),
|
||||
path.join(dir, 'index.js')
|
||||
);
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('cup', function (t) {
|
||||
var dir = path.join(__dirname, 'resolver');
|
||||
t.equal(
|
||||
resolve.sync('./cup', {
|
||||
basedir: dir,
|
||||
extensions: ['.js', '.coffee']
|
||||
}),
|
||||
path.join(dir, 'cup.coffee')
|
||||
);
|
||||
|
||||
t.equal(
|
||||
resolve.sync('./cup.coffee', { basedir: dir }),
|
||||
path.join(dir, 'cup.coffee')
|
||||
);
|
||||
|
||||
t.throws(function () {
|
||||
resolve.sync('./cup', {
|
||||
basedir: dir,
|
||||
extensions: ['.js']
|
||||
});
|
||||
});
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('mug', function (t) {
|
||||
var dir = path.join(__dirname, 'resolver');
|
||||
t.equal(
|
||||
resolve.sync('./mug', { basedir: dir }),
|
||||
path.join(dir, 'mug.js')
|
||||
);
|
||||
|
||||
t.equal(
|
||||
resolve.sync('./mug', {
|
||||
basedir: dir,
|
||||
extensions: ['.coffee', '.js']
|
||||
}),
|
||||
path.join(dir, 'mug.coffee')
|
||||
);
|
||||
|
||||
t.equal(
|
||||
resolve.sync('./mug', {
|
||||
basedir: dir,
|
||||
extensions: ['.js', '.coffee']
|
||||
}),
|
||||
path.join(dir, 'mug.js')
|
||||
);
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('other path', function (t) {
|
||||
var resolverDir = path.join(__dirname, 'resolver');
|
||||
var dir = path.join(resolverDir, 'bar');
|
||||
var otherDir = path.join(resolverDir, 'other_path');
|
||||
|
||||
t.equal(
|
||||
resolve.sync('root', {
|
||||
basedir: dir,
|
||||
paths: [otherDir]
|
||||
}),
|
||||
path.join(resolverDir, 'other_path/root.js')
|
||||
);
|
||||
|
||||
t.equal(
|
||||
resolve.sync('lib/other-lib', {
|
||||
basedir: dir,
|
||||
paths: [otherDir]
|
||||
}),
|
||||
path.join(resolverDir, 'other_path/lib/other-lib.js')
|
||||
);
|
||||
|
||||
t.throws(function () {
|
||||
resolve.sync('root', { basedir: dir });
|
||||
});
|
||||
|
||||
t.throws(function () {
|
||||
resolve.sync('zzz', {
|
||||
basedir: dir,
|
||||
paths: [otherDir]
|
||||
});
|
||||
});
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('incorrect main', function (t) {
|
||||
var resolverDir = path.join(__dirname, 'resolver');
|
||||
var dir = path.join(resolverDir, 'incorrect_main');
|
||||
|
||||
t.equal(
|
||||
resolve.sync('./incorrect_main', { basedir: resolverDir }),
|
||||
path.join(dir, 'index.js')
|
||||
);
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('#25: node modules with the same name as node stdlib modules', function (t) {
|
||||
var resolverDir = path.join(__dirname, 'resolver/punycode');
|
||||
|
||||
t.equal(
|
||||
resolve.sync('punycode', { basedir: resolverDir }),
|
||||
path.join(resolverDir, 'node_modules/punycode/index.js')
|
||||
);
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
var stubStatSync = function stubStatSync(fn) {
|
||||
var fs = require('fs');
|
||||
var statSync = fs.statSync;
|
||||
try {
|
||||
fs.statSync = function () {
|
||||
throw new EvalError('Unknown Error');
|
||||
};
|
||||
return fn();
|
||||
} finally {
|
||||
fs.statSync = statSync;
|
||||
}
|
||||
};
|
||||
|
||||
test('#79 - re-throw non ENOENT errors from stat', function (t) {
|
||||
var dir = path.join(__dirname, 'resolver');
|
||||
|
||||
stubStatSync(function () {
|
||||
t.throws(function () {
|
||||
resolve.sync('foo', { basedir: dir });
|
||||
}, /Unknown Error/);
|
||||
});
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('#52 - incorrectly resolves module-paths like "./someFolder/" when there is a file of the same name', function (t) {
|
||||
var dir = path.join(__dirname, 'resolver');
|
||||
|
||||
t.equal(
|
||||
resolve.sync('./foo', { basedir: path.join(dir, 'same_names') }),
|
||||
path.join(dir, 'same_names/foo.js')
|
||||
);
|
||||
t.equal(
|
||||
resolve.sync('./foo/', { basedir: path.join(dir, 'same_names') }),
|
||||
path.join(dir, 'same_names/foo/index.js')
|
||||
);
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('sync: #121 - treating an existing file as a dir when no basedir', function (t) {
|
||||
var testFile = path.basename(__filename);
|
||||
|
||||
t.test('sanity check', function (st) {
|
||||
st.equal(
|
||||
resolve.sync('./' + testFile),
|
||||
__filename,
|
||||
'sanity check'
|
||||
);
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('with a fake directory', function (st) {
|
||||
function run() { return resolve.sync('./' + testFile + '/blah'); }
|
||||
|
||||
st.throws(run, 'throws an error');
|
||||
|
||||
try {
|
||||
run();
|
||||
} catch (e) {
|
||||
st.equal(e.code, 'MODULE_NOT_FOUND', 'error code matches require.resolve');
|
||||
st.equal(
|
||||
e.message,
|
||||
'Cannot find module \'./' + testFile + '/blah\' from \'' + __dirname + '\'',
|
||||
'can not find nonexistent module'
|
||||
);
|
||||
}
|
||||
|
||||
st.end();
|
||||
});
|
||||
|
||||
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();
|
||||
});
|
||||
|
||||
test('not a directory', function (t) {
|
||||
var path = './foo';
|
||||
try {
|
||||
resolve.sync(path, { basedir: __filename });
|
||||
t.fail();
|
||||
} catch (err) {
|
||||
t.ok(err, 'a non-directory errors');
|
||||
t.equal(err && err.message, 'Cannot find module \'' + path + "' from '" + __filename + "'");
|
||||
}
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('browser field in package.json', function (t) {
|
||||
var dir = path.join(__dirname, 'resolver');
|
||||
var res = resolve.sync('./browser_field', {
|
||||
basedir: dir,
|
||||
packageFilter: function packageFilter(pkg) {
|
||||
if (pkg.browser) {
|
||||
pkg.main = pkg.browser;
|
||||
delete pkg.browser;
|
||||
}
|
||||
return pkg;
|
||||
}
|
||||
});
|
||||
t.equal(res, path.join(dir, 'browser_field', 'b.js'));
|
||||
t.end();
|
||||
});
|
13
node_modules/resolve/test/subdirs.js
generated
vendored
Normal file
13
node_modules/resolve/test/subdirs.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
var test = require('tape');
|
||||
var resolve = require('../');
|
||||
var path = require('path');
|
||||
|
||||
test('subdirs', function (t) {
|
||||
t.plan(2);
|
||||
|
||||
var dir = path.join(__dirname, '/subdirs');
|
||||
resolve('a/b/c/x.json', { basedir: dir }, function (err, res) {
|
||||
t.ifError(err);
|
||||
t.equal(res, path.join(dir, 'node_modules/a/b/c/x.json'));
|
||||
});
|
||||
});
|
54
node_modules/resolve/test/symlinks.js
generated
vendored
Normal file
54
node_modules/resolve/test/symlinks.js
generated
vendored
Normal file
@@ -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();
|
||||
});
|
Reference in New Issue
Block a user