aboutsummaryrefslogtreecommitdiff
path: root/deps/npm/lib/install/realize-shrinkwrap-specifier.js
diff options
context:
space:
mode:
authorKat Marchán <kzm@sykosomatic.org>2017-05-09 14:46:02 -0700
committerAnna Henningsen <anna@addaleax.net>2017-05-23 19:39:43 +0200
commitc0d858f8bb8ba5212548da2fba6a7bc02db0462b (patch)
tree99f043ec5aec3f5150a2aed0f62597234b158140 /deps/npm/lib/install/realize-shrinkwrap-specifier.js
parent994617370e8e66f3ea9488fec32fd912e7902396 (diff)
downloadandroid-node-v8-c0d858f8bb8ba5212548da2fba6a7bc02db0462b.tar.gz
android-node-v8-c0d858f8bb8ba5212548da2fba6a7bc02db0462b.tar.bz2
android-node-v8-c0d858f8bb8ba5212548da2fba6a7bc02db0462b.zip
deps: upgrade npm beta to 5.0.0-beta.56
PR-URL: https://github.com/nodejs/node/pull/12936 Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'deps/npm/lib/install/realize-shrinkwrap-specifier.js')
-rw-r--r--deps/npm/lib/install/realize-shrinkwrap-specifier.js37
1 files changed, 15 insertions, 22 deletions
diff --git a/deps/npm/lib/install/realize-shrinkwrap-specifier.js b/deps/npm/lib/install/realize-shrinkwrap-specifier.js
index 0c491a6028..91030bfa82 100644
--- a/deps/npm/lib/install/realize-shrinkwrap-specifier.js
+++ b/deps/npm/lib/install/realize-shrinkwrap-specifier.js
@@ -1,25 +1,18 @@
'use strict'
-var realizePackageSpecifier = require('realize-package-specifier')
-var isRegistrySpecifier = require('./is-registry-specifier.js')
+var npa = require('npm-package-arg')
-module.exports = function (name, sw, where, cb) {
- function lookup (ver, cb) {
- realizePackageSpecifier(name + '@' + ver, where, cb)
- }
- if (sw.resolved) {
- return lookup(sw.resolved, cb)
- } else if (sw.from) {
- return lookup(sw.from, function (err, spec) {
- if (err || isRegistrySpecifier(spec)) {
- return thenUseVersion()
- } else {
- return cb(null, spec)
- }
- })
- } else {
- return thenUseVersion()
- }
- function thenUseVersion () {
- lookup(sw.version, cb)
- }
+module.exports = function (name, sw, where) {
+ try {
+ if (sw.version && sw.integrity) {
+ return npa.resolve(name, sw.version, where)
+ }
+ if (sw.resolved) {
+ return npa.resolve(name, sw.resolved, where)
+ }
+ if (sw.from) {
+ var spec = npa(sw.from, where)
+ if (!spec.registry) return spec
+ }
+ } catch (_) { }
+ return npa.resolve(name, sw.version, where)
}