aboutsummaryrefslogtreecommitdiff
path: root/deps/npm/lib/install/diff-trees.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/lib/install/diff-trees.js')
-rw-r--r--deps/npm/lib/install/diff-trees.js32
1 files changed, 8 insertions, 24 deletions
diff --git a/deps/npm/lib/install/diff-trees.js b/deps/npm/lib/install/diff-trees.js
index 1429c71dcb..67fe72d044 100644
--- a/deps/npm/lib/install/diff-trees.js
+++ b/deps/npm/lib/install/diff-trees.js
@@ -9,13 +9,13 @@ function nonRegistrySource (pkg) {
if (!requested) return false
if (requested.type === 'hosted') return true
- if (requested.type === 'local') return true
+ if (requested.type === 'file' || requested.type === 'directory') return true
return false
}
function pkgAreEquiv (aa, bb) {
- var aaSha = (aa.dist && aa.dist.shasum) || aa._shasum
- var bbSha = (bb.dist && bb.dist.shasum) || bb._shasum
+ var aaSha = (aa.dist && aa.dist.integrity) || aa._integrity
+ var bbSha = (bb.dist && bb.dist.integrity) || bb._integrity
if (aaSha === bbSha) return true
if (aaSha || bbSha) return false
if (nonRegistrySource(aa) || nonRegistrySource(bb)) return false
@@ -24,13 +24,13 @@ function pkgAreEquiv (aa, bb) {
}
function getUniqueId (pkg) {
- var versionspec = pkg._shasum
+ var versionspec = pkg._integrity
if (!versionspec && nonRegistrySource(pkg)) {
if (pkg._requested) {
- versionspec = pkg._requested.spec
+ versionspec = pkg._requested.fetchSpec
} else if (pkg._from) {
- versionspec = npa(pkg._from).spec
+ versionspec = npa(pkg._from).fetchSpec
}
}
if (!versionspec) {
@@ -50,15 +50,6 @@ module.exports = function (oldTree, newTree, differences, log, next) {
next()
}
-function isLink (node) {
- return node && node.isLink
-}
-
-function requiredByAllLinked (node) {
- if (!node.requiredBy.length) return false
- return node.requiredBy.filter(isLink).length === node.requiredBy.length
-}
-
function isNotTopOrExtraneous (node) {
return !node.isTop && !node.userRequired && !node.existing
}
@@ -136,16 +127,9 @@ var diffTrees = module.exports._diffTrees = function (oldTree, newTree) {
Object.keys(flatNewTree).forEach(function (path) {
var pkg = flatNewTree[path]
pkg.oldPkg = flatOldTree[path]
- pkg.isInLink = (pkg.oldPkg && isLink(pkg.oldPkg.parent)) ||
- (pkg.parent && isLink(pkg.parent)) ||
- requiredByAllLinked(pkg)
if (pkg.oldPkg) {
if (!pkg.userRequired && pkgAreEquiv(pkg.oldPkg.package, pkg.package)) return
- if (!pkg.isInLink && (isLink(pkg.oldPkg) || isLink(pkg))) {
- setAction(differences, 'update-linked', pkg)
- } else {
- setAction(differences, 'update', pkg)
- }
+ setAction(differences, 'update', pkg)
} else {
var vername = getUniqueId(pkg.package)
var removing = toRemoveByUniqueId[vername] && toRemoveByUniqueId[vername].length
@@ -155,7 +139,7 @@ var diffTrees = module.exports._diffTrees = function (oldTree, newTree) {
pkg.fromPath = toRemove[flatname].path
setAction(differences, 'move', pkg)
delete toRemove[flatname]
- } else {
+ } else if (!(pkg.isInLink && pkg.fromBundle)) {
setAction(differences, 'add', pkg)
}
}