blob: f90bf0b4ea6f7382f15f6ec8811496213e969ffc (
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.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.warn('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()
}
|