summaryrefslogtreecommitdiff
path: root/deps/npm/lib/install/flatten-tree.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/lib/install/flatten-tree.js')
-rw-r--r--deps/npm/lib/install/flatten-tree.js16
1 files changed, 14 insertions, 2 deletions
diff --git a/deps/npm/lib/install/flatten-tree.js b/deps/npm/lib/install/flatten-tree.js
index 869685a4e8..b6ceb30f2f 100644
--- a/deps/npm/lib/install/flatten-tree.js
+++ b/deps/npm/lib/install/flatten-tree.js
@@ -2,7 +2,11 @@
var validate = require('aproba')
var moduleName = require('../utils/module-name.js')
-module.exports = function (tree) {
+module.exports = flattenTree
+module.exports.flatName = flatName
+module.exports.flatNameFromTree = flatNameFromTree
+
+function flattenTree (tree) {
validate('O', arguments)
var seen = {}
var flat = {}
@@ -24,7 +28,15 @@ module.exports = function (tree) {
return flat
}
-var flatName = module.exports.flatName = function (path, child) {
+function flatName (path, child) {
validate('SO', arguments)
return path + (moduleName(child) || 'TOP')
}
+
+function flatNameFromTree (tree) {
+ validate('O', arguments)
+ if (tree.isTop) return '/'
+ var path = flatNameFromTree(tree.parent)
+ if (path !== '/') path += '/'
+ return flatName(path, tree)
+}