blob: beac30b7b00198e6d888e31b32967ce58582ea7a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
'use strict'
var path = require('path')
var validate = require('aproba')
var log = require('npmlog')
var packageId = require('../utils/package-id.js')
module.exports = function (top, differences, next) {
validate('SAF', arguments)
var action
var keep = []
differences.forEach(function (action) {
var cmd = action[0]
var pkg = action[1]
if (cmd === 'remove') {
pkg.removing = true
}
})
/*eslint no-cond-assign:0*/
while (action = differences.shift()) {
var cmd = action[0]
var pkg = action[1]
if (pkg.isInLink || (pkg.parent && (pkg.parent.target || pkg.parent.isLink))) {
// we want to skip warning if this is a child of another module that we're removing
if (!pkg.parent.removing) {
log.verbose('skippingAction', 'Module is inside a symlinked module: not running ' +
cmd + ' ' + packageId(pkg) + ' ' + path.relative(top, pkg.path))
}
} else {
keep.push(action)
}
}
differences.push.apply(differences, keep)
next()
}
|