diff options
Diffstat (limited to 'deps/node/deps/npm/lib/install/validate-tree.js')
-rw-r--r-- | deps/node/deps/npm/lib/install/validate-tree.js | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/deps/node/deps/npm/lib/install/validate-tree.js b/deps/node/deps/npm/lib/install/validate-tree.js deleted file mode 100644 index 24a14017..00000000 --- a/deps/node/deps/npm/lib/install/validate-tree.js +++ /dev/null @@ -1,95 +0,0 @@ -'use strict' -var path = require('path') -var validate = require('aproba') -var asyncMap = require('slide').asyncMap -var chain = require('slide').chain -var npmInstallChecks = require('npm-install-checks') -var checkGit = npmInstallChecks.checkGit -var clone = require('lodash.clonedeep') -var normalizePackageData = require('normalize-package-data') -var npm = require('../npm.js') -var andFinishTracker = require('./and-finish-tracker.js') -var flattenTree = require('./flatten-tree.js') -var validateAllPeerDeps = require('./deps.js').validateAllPeerDeps -var packageId = require('../utils/package-id.js') - -module.exports = function (idealTree, log, next) { - validate('OOF', arguments) - var moduleMap = flattenTree(idealTree) - var modules = Object.keys(moduleMap).map(function (name) { return moduleMap[name] }) - - chain([ - [asyncMap, modules, function (mod, done) { - chain([ - mod.parent && !mod.isLink && [checkGit, mod.realpath], - [checkErrors, mod, idealTree] - ], done) - }], - [thenValidateAllPeerDeps, idealTree], - [thenCheckTop, idealTree], - [thenCheckDuplicateDeps, idealTree] - ], andFinishTracker(log, next)) -} - -function checkErrors (mod, idealTree, next) { - if (mod.error && (mod.parent || path.resolve(npm.globalDir, '..') !== mod.path)) idealTree.warnings.push(mod.error) - next() -} - -function thenValidateAllPeerDeps (idealTree, next) { - validate('OF', arguments) - validateAllPeerDeps(idealTree, function (tree, pkgname, version) { - var warn = new Error(packageId(tree) + ' requires a peer of ' + pkgname + '@' + - version + ' but none is installed. You must install peer dependencies yourself.') - warn.code = 'EPEERINVALID' - idealTree.warnings.push(warn) - }) - next() -} - -function thenCheckTop (idealTree, next) { - validate('OF', arguments) - if (idealTree.package.error) return next() - - // FIXME: when we replace read-package-json with something less magic, - // this should done elsewhere. - // As it is, the package has already been normalized and thus some - // errors are suppressed. - var pkg = clone(idealTree.package) - try { - normalizePackageData(pkg, function (warn) { - var warnObj = new Error(packageId(idealTree) + ' ' + warn) - warnObj.code = 'EPACKAGEJSON' - idealTree.warnings.push(warnObj) - }, false) - } catch (er) { - er.code = 'EPACKAGEJSON' - idealTree.warnings.push(er) - } - - var nodeVersion = npm.config.get('node-version') - if (/-/.test(nodeVersion)) { - // if this is a prerelease nodeā¦ - var warnObj = new Error('You are using a pre-release version of node and things may not work as expected') - warnObj.code = 'ENODEPRE' - idealTree.warnings.push(warnObj) - } - - next() -} - -// check for deps duplciated between devdeps and regular deps -function thenCheckDuplicateDeps (idealTree, next) { - var deps = idealTree.package.dependencies || {} - var devDeps = idealTree.package.devDependencies || {} - - for (var pkg in devDeps) { - if (pkg in deps) { - var warnObj = new Error('The package ' + pkg + ' is included as both a dev and production dependency.') - warnObj.code = 'EDUPLICATEDEP' - idealTree.warnings.push(warnObj) - } - } - - next() -} |