PK œqhYî¶J‚ßFßF)nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/ $#$#$#

Dir : /lib/node_modules/npm/lib/install/
Server: Linux cloud.virginhosting.lk 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
IP: 128.140.68.198
Choose File :

Url:
Dir : //lib/node_modules/npm/lib/install/copy-tree.js

'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
}