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

pick-manifest-from-registry-metadata.js « utils « lib - github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: a92e30b73b6754e82e15258967ed2191d875abdc (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
'use strict'
module.exports = pickManifestFromRegistryMetadata

var log = require('npmlog')
var semver = require('semver')

function pickManifestFromRegistryMetadata (spec, tag, versions, metadata) {
  log.silly('pickManifestFromRegistryMetadata', 'spec', spec, 'tag', tag, 'versions', versions)

  // if the tagged version satisfies, then use that.
  var tagged = metadata['dist-tags'][tag]
  if (tagged &&
      metadata.versions[tagged] &&
      semver.satisfies(tagged, spec, true))
    return { resolvedTo: tag, manifest: metadata.versions[tagged] }

  // find the max satisfying version.
  var ms = semver.maxSatisfying(versions, spec, true)
  if (ms)
    return { resolvedTo: ms, manifest: metadata.versions[ms] }
  else if (spec === '*' && versions.length && tagged && metadata.versions[tagged])
    return { resolvedTo: tag, manifest: metadata.versions[tagged] }
  else {

  }
}