diff options
author | isaacs <i@izs.me> | 2013-02-06 08:39:27 -0800 |
---|---|---|
committer | isaacs <i@izs.me> | 2013-02-06 08:39:31 -0800 |
commit | 5aef65a98a9427bcd6f41d8f65235bd26883d2d7 (patch) | |
tree | f1e290db817cedc3af49d6f6423ca7033cbdee18 /deps/npm/lib/dedupe.js | |
parent | a86ebbe2885fe6f2b6adeeaa95c8abc12d821d7b (diff) | |
download | android-node-v8-5aef65a98a9427bcd6f41d8f65235bd26883d2d7.tar.gz android-node-v8-5aef65a98a9427bcd6f41d8f65235bd26883d2d7.tar.bz2 android-node-v8-5aef65a98a9427bcd6f41d8f65235bd26883d2d7.zip |
npm: Upgrade to v1.2.10
Diffstat (limited to 'deps/npm/lib/dedupe.js')
-rw-r--r-- | deps/npm/lib/dedupe.js | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/deps/npm/lib/dedupe.js b/deps/npm/lib/dedupe.js index 51c6fca90f..bd0056e99b 100644 --- a/deps/npm/lib/dedupe.js +++ b/deps/npm/lib/dedupe.js @@ -35,8 +35,16 @@ function dedupe (args, silent, cb) { function dedupe_ (dir, filter, unavoidable, dryrun, silent, cb) { readInstalled(path.resolve(dir), {}, null, function (er, data, counter) { + if (er) { + return cb(er) + } + + if (!data) { + return cb() + } + // find out which things are dupes - var dupes = Object.keys(counter).filter(function (k) { + var dupes = Object.keys(counter || {}).filter(function (k) { if (filter.length && -1 === filter.indexOf(k)) return false return counter[k] > 1 && !unavoidable[k] }).reduce(function (s, k) { @@ -265,7 +273,7 @@ function readInstalled (dir, counter, parent, cb) { }) readJson(path.resolve(dir, "package.json"), function (er, data) { - if (er && er.code !== "ENOENT") return cb(er) + if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) if (er) return cb() // not a package, probably. counter[data.name] = counter[data.name] || 0 counter[data.name]++ @@ -294,6 +302,9 @@ function readInstalled (dir, counter, parent, cb) { fs.readdir(path.resolve(dir, "node_modules"), function (er, c) { children = c || [] // error is ok, just means no children. + children = children.filter(function (p) { + return !p.match(/^[\._-]/) + }) next() }) |