• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict'
2var npa = require('npm-package-arg')
3const isRegistry = require('../utils/is-registry.js')
4
5module.exports = function (name, sw, where) {
6  try {
7    if (sw.version && sw.integrity) {
8      return npa.resolve(name, sw.version, where)
9    } else if (sw.from) {
10      const spec = npa(sw.from, where)
11      if (isRegistry(spec) && sw.version) {
12        return npa.resolve(name, sw.version, where)
13      } else if (!sw.resolved) {
14        return spec
15      }
16    }
17    if (sw.resolved) {
18      return npa.resolve(name, sw.resolved, where)
19    }
20  } catch (_) { }
21  return npa.resolve(name, sw.version, where)
22}
23