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