summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/read-installed/read-installed.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/read-installed/read-installed.js')
-rw-r--r--deps/npm/node_modules/read-installed/read-installed.js28
1 files changed, 13 insertions, 15 deletions
diff --git a/deps/npm/node_modules/read-installed/read-installed.js b/deps/npm/node_modules/read-installed/read-installed.js
index 2920d7d66..9ca482dab 100644
--- a/deps/npm/node_modules/read-installed/read-installed.js
+++ b/deps/npm/node_modules/read-installed/read-installed.js
@@ -101,17 +101,14 @@ var url = require("url")
module.exports = readInstalled
-function readInstalled (folder, depth_, log_, cb_) {
- var depth = Infinity, log = function () {}, cb
- for (var i = 1; i < arguments.length - 1; i++) {
- if (typeof arguments[i] === 'number')
- depth = arguments[i]
- else if (typeof arguments[i] === 'function')
- log = arguments[i]
+function readInstalled (folder, opts, cb) {
+ if (typeof opts === 'function') {
+ cb = opts
+ opts = {}
}
- cb = arguments[i]
+ var depth = Infinity || opts.depth, log = function () {} || opts.log, dev = false || opts.dev
- readInstalled_(folder, null, null, null, 0, depth, function (er, obj) {
+ readInstalled_(folder, null, null, null, 0, depth, dev, function (er, obj) {
if (er) return cb(er)
// now obj has all the installed things, where they're installed
// figure out the inheritance links, now that the object is built.
@@ -121,7 +118,7 @@ function readInstalled (folder, depth_, log_, cb_) {
}
var rpSeen = {}
-function readInstalled_ (folder, parent, name, reqver, depth, maxDepth, cb) {
+function readInstalled_ (folder, parent, name, reqver, depth, maxDepth, dev, cb) {
var installed
, obj
, real
@@ -177,7 +174,7 @@ function readInstalled_ (folder, parent, name, reqver, depth, maxDepth, cb) {
obj.realName = name || obj.name
obj.dependencies = obj.dependencies || {}
- // "foo":"http://blah" is always presumed valid
+ // "foo":"http://blah" and "foo":"latest" are always presumed valid
if (reqver
&& semver.validRange(reqver, true)
&& !semver.satisfies(obj.version, reqver, true)) {
@@ -186,7 +183,7 @@ function readInstalled_ (folder, parent, name, reqver, depth, maxDepth, cb) {
if (parent
&& !(name in parent.dependencies)
- && !(name in (parent.devDependencies || {}))) {
+ && (dev || !(name in (parent.devDependencies || {})))) {
obj.extraneous = true
}
obj.path = obj.path || folder
@@ -198,7 +195,7 @@ function readInstalled_ (folder, parent, name, reqver, depth, maxDepth, cb) {
//if (depth >= maxDepth) return cb(null, obj)
asyncMap(installed, function (pkg, cb) {
var rv = obj.dependencies[pkg]
- if (!rv && obj.devDependencies) rv = obj.devDependencies[pkg]
+ if (!rv && obj.devDependencies && !dev) rv = obj.devDependencies[pkg]
if (depth >= maxDepth) {
// just try to get the version number
var pkgfolder = path.resolve(folder, "node_modules", pkg)
@@ -220,6 +217,7 @@ function readInstalled_ (folder, parent, name, reqver, depth, maxDepth, cb) {
readInstalled_( path.resolve(folder, "node_modules/"+pkg)
, obj, pkg, obj.dependencies[pkg], depth + 1, maxDepth
+ , dev
, cb )
}, function (er, installedData) {
@@ -285,9 +283,9 @@ function findUnmet (obj, log) {
r = r.link ? null : r.parent
continue
}
+ // "foo":"http://blah" and "foo":"latest" are always presumed valid
if ( typeof deps[d] === "string"
- // url deps presumed innocent.
- && !url.parse(deps[d]).protocol
+ && semver.validRange(deps[d], true)
&& !semver.satisfies(found.version, deps[d], true)) {
// the bad thing will happen
log("unmet dependency", obj.path + " requires "+d+"@'"+deps[d]