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:
42
website/node_modules/npm/lib/install/flatten-tree.js
generated
vendored
Normal file
42
website/node_modules/npm/lib/install/flatten-tree.js
generated
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
'use strict'
|
||||
var validate = require('aproba')
|
||||
var moduleName = require('../utils/module-name.js')
|
||||
|
||||
module.exports = flattenTree
|
||||
module.exports.flatName = flatName
|
||||
module.exports.flatNameFromTree = flatNameFromTree
|
||||
|
||||
function flattenTree (tree) {
|
||||
validate('O', arguments)
|
||||
var seen = new Set()
|
||||
var flat = {}
|
||||
var todo = [[tree, '/']]
|
||||
while (todo.length) {
|
||||
var next = todo.shift()
|
||||
var pkg = next[0]
|
||||
seen.add(pkg)
|
||||
var path = next[1]
|
||||
flat[path] = pkg
|
||||
if (path !== '/') path += '/'
|
||||
for (var ii = 0; ii < pkg.children.length; ++ii) {
|
||||
var child = pkg.children[ii]
|
||||
if (!seen.has(child)) {
|
||||
todo.push([child, flatName(path, child)])
|
||||
}
|
||||
}
|
||||
}
|
||||
return flat
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
Reference in New Issue
Block a user