Welcome to mirror list, hosted at ThFree Co, Russian Federation.

funding.js « bin « arborist « workspaces - github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: cf25976d94ca69a2d7c9d7042cc8d44b9b18cc39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
const Arborist = require('../')

const log = require('./lib/logging.js')

module.exports = (options, time) => {
  const query = options._.shift()
  const a = new Arborist(options)
  return a
    .loadVirtual()
    .then(tree => {
      // only load the actual tree if the virtual one doesn't have modern metadata
      if (!tree.meta || !(tree.meta.originalLockfileVersion >= 2)) {
        log.error('old metadata, load actual')
        throw 'load actual'
      } else {
        log.error('meta ok, return virtual tree')
        return tree
      }
    })
    .catch(() => a.loadActual())
    .then(time)
    .then(({ timing, result: tree }) => {
      if (!query) {
        for (const node of tree.inventory.values()) {
          if (node.package.funding) {
            log.info(node.name, node.location, node.package.funding)
          }
        }
      } else {
        for (const node of tree.inventory.query('name', query)) {
          if (node.package.funding) {
            log.info(node.name, node.location, node.package.funding)
          }
        }
      }
      return `read ${tree.inventory.size} deps in ${timing.ms}`
    })
}