mirror of
https://github.com/titanscouting/tra-analysis.git
synced 2025-09-07 23:37:21 +00:00
push all website files
This commit is contained in:
30
website/node_modules/npm/lib/install/copy-tree.js
generated
vendored
Normal file
30
website/node_modules/npm/lib/install/copy-tree.js
generated
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
'use strict'
|
||||
var createNode = require('./node.js').create
|
||||
module.exports = function (tree) {
|
||||
return copyTree(tree, {})
|
||||
}
|
||||
|
||||
function copyTree (tree, cache) {
|
||||
if (cache[tree.path]) { return cache[tree.path] }
|
||||
var newTree = cache[tree.path] = createNode(Object.assign({}, tree))
|
||||
copyModuleList(newTree, 'children', cache)
|
||||
newTree.children.forEach(function (child) {
|
||||
child.parent = newTree
|
||||
})
|
||||
copyModuleList(newTree, 'requires', cache)
|
||||
copyModuleList(newTree, 'requiredBy', cache)
|
||||
return newTree
|
||||
}
|
||||
|
||||
function copyModuleList (tree, key, cache) {
|
||||
var newList = []
|
||||
if (tree[key]) {
|
||||
tree[key].forEach(function (child) {
|
||||
const copy = copyTree(child, cache)
|
||||
if (copy) {
|
||||
newList.push(copy)
|
||||
}
|
||||
})
|
||||
}
|
||||
tree[key] = newList
|
||||
}
|
Reference in New Issue
Block a user