Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 752e183

Browse filesBrowse files
larsgwisaacs
authored andcommitted
install: improve isOnly(Dev,Optional)
Instead of creating a new set each time a new node gets visited, so that its siblings do not have it in `seen`, just remove the node from the original set right after all child nodes are visited. See #76 Credit: @larsgw PR-URL: #206 Close: #206 Reviewed-by: @isaacs
1 parent 3e98911 commit 752e183
Copy full SHA for 752e183

File tree

Expand file treeCollapse file tree

2 files changed

+6
-4
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+6
-4
lines changed

‎lib/install/is-only-dev.js

Copy file name to clipboardExpand all lines: lib/install/is-only-dev.js
+3-2Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,10 @@ function andIsOnlyDev (name, seen) {
2828
return isDev && !isProd
2929
} else {
3030
if (seen.has(req)) return true
31-
seen = new Set(seen)
3231
seen.add(req)
33-
return isOnlyDev(req, seen)
32+
const result = isOnlyDev(req, seen)
33+
seen.delete(req)
34+
return result
3435
}
3536
}
3637
}

‎lib/install/is-only-optional.js

Copy file name to clipboardExpand all lines: lib/install/is-only-optional.js
+3-2Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@ function isOptional (node, seen) {
1111
if (seen.has(node) || node.requiredBy.length === 0) {
1212
return false
1313
}
14-
seen = new Set(seen)
1514
seen.add(node)
1615
const swOptional = node.fromShrinkwrap && node.package._optional
17-
return node.requiredBy.every(function (req) {
16+
const result = node.requiredBy.every(function (req) {
1817
if (req.fakeChild && swOptional) return true
1918
return isOptDep(req, moduleName(node)) || isOptional(req, seen)
2019
})
20+
seen.delete(node)
21+
return result
2122
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.