12345678910111213141516171819202122232425262728293031 |
- 'use strict'
- var path = require('path')
- var moduleName = require('../utils/module-name.js')
- module.exports = reportOptionalFailure
- function top (tree) {
- if (tree.parent) return top(tree.parent)
- return tree
- }
- function reportOptionalFailure (tree, what, error) {
- var topTree = top(tree)
- if (!topTree.warnings) topTree.warnings = []
- var id
- if (what) {
- var depVer = tree.package.dependencies && tree.package.dependencies[what]
- var optDepVer = tree.package.optionalDependencies && tree.package.optionalDependencies[what]
- var devDepVer = tree.package.devDependencies && tree.package.devDependencies[what]
- var version = depVer || optDepVer || devDepVer
- id = what + (version ? '@' + version : '')
- } else {
- id = tree._id || moduleName(tree) + (tree.package.version ? '@' + tree.package.version : '')
- }
- var location = path.relative(topTree.path, tree.path)
- if (what) location = path.join(location, 'node_modules', what)
- error.optional = id
- error.location = location
- topTree.warnings.push(error)
- }
|