mirror of
https://github.com/nodejs/node.git
synced 2025-05-22 22:11:41 +00:00

PR-URL: https://github.com/nodejs/node/pull/42122 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Mestery <mestery@protonmail.com> Reviewed-By: Danielle Adams <adamzdanielle@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de>
49 lines
1.1 KiB
JavaScript
49 lines
1.1 KiB
JavaScript
const Arborist = require('../')
|
|
|
|
const printTree = require('./lib/print-tree.js')
|
|
const log = require('./lib/logging.js')
|
|
|
|
const printDiff = diff => {
|
|
const { depth } = require('treeverse')
|
|
depth({
|
|
tree: diff,
|
|
visit: d => {
|
|
if (d.location === '') {
|
|
return
|
|
}
|
|
switch (d.action) {
|
|
case 'REMOVE':
|
|
log.info('REMOVE', d.actual.location)
|
|
break
|
|
case 'ADD':
|
|
log.info('ADD', d.ideal.location, d.ideal.resolved)
|
|
break
|
|
case 'CHANGE':
|
|
log.info('CHANGE', d.actual.location, {
|
|
from: d.actual.resolved,
|
|
to: d.ideal.resolved,
|
|
})
|
|
break
|
|
}
|
|
},
|
|
getChildren: d => d.children,
|
|
})
|
|
}
|
|
|
|
module.exports = (options, time) => {
|
|
const arb = new Arborist(options)
|
|
return arb
|
|
.prune(options)
|
|
.then(time)
|
|
.then(async ({ timing, result: tree }) => {
|
|
printTree(tree)
|
|
if (options.dryRun) {
|
|
printDiff(arb.diff)
|
|
}
|
|
if (tree.meta && options.save) {
|
|
await tree.meta.save()
|
|
}
|
|
return `resolved ${tree.inventory.size} deps in ${timing.seconds}`
|
|
})
|
|
}
|