summaryrefslogtreecommitdiff
path: root/deps/npm/lib/dedupe.js
diff options
context:
space:
mode:
authorisaacs <i@izs.me>2013-02-06 08:39:27 -0800
committerisaacs <i@izs.me>2013-02-06 08:39:31 -0800
commit5aef65a98a9427bcd6f41d8f65235bd26883d2d7 (patch)
treef1e290db817cedc3af49d6f6423ca7033cbdee18 /deps/npm/lib/dedupe.js
parenta86ebbe2885fe6f2b6adeeaa95c8abc12d821d7b (diff)
downloadandroid-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.js15
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()
})