D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
alt
/
alt-nodejs8
/
root
/
lib
/
node_modules
/
npm
/
lib
/
install
/
Filename :
copy-tree.js
back
Copy
'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 }