diff options
Diffstat (limited to 'deps/node/deps/npm/lib/install/realize-shrinkwrap-specifier.js')
-rw-r--r-- | deps/node/deps/npm/lib/install/realize-shrinkwrap-specifier.js | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/deps/node/deps/npm/lib/install/realize-shrinkwrap-specifier.js b/deps/node/deps/npm/lib/install/realize-shrinkwrap-specifier.js new file mode 100644 index 00000000..e4b14b1f --- /dev/null +++ b/deps/node/deps/npm/lib/install/realize-shrinkwrap-specifier.js @@ -0,0 +1,22 @@ +'use strict' +var npa = require('npm-package-arg') +const isRegistry = require('../utils/is-registry.js') + +module.exports = function (name, sw, where) { + try { + if (sw.version && sw.integrity) { + return npa.resolve(name, sw.version, where) + } else if (sw.from) { + const spec = npa(sw.from, where) + if (isRegistry(spec) && sw.version) { + return npa.resolve(name, sw.version, where) + } else if (!sw.resolved) { + return spec + } + } + if (sw.resolved) { + return npa.resolve(name, sw.resolved, where) + } + } catch (_) { } + return npa.resolve(name, sw.version, where) +} |