12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- module.exports = installedDeep
- var npm = require('../../npm.js')
- var readInstalled = require('read-installed')
- function installedDeep (opts, cb) {
- var local
- var global
- var depth = npm.config.get('depth')
- var opt = { depth: depth, dev: true }
- if (npm.config.get('global')) {
- local = []
- next()
- } else {
- readInstalled(npm.prefix, opt, function (er, data) {
- local = getNames(data || {})
- next()
- })
- }
- readInstalled(npm.config.get('prefix'), opt, function (er, data) {
- global = getNames(data || {})
- next()
- })
- function getNames_ (d, n) {
- if (d.realName && n) {
- if (n[d.realName]) return n
- n[d.realName] = true
- }
- if (!n) n = {}
- Object.keys(d.dependencies || {}).forEach(function (dep) {
- getNames_(d.dependencies[dep], n)
- })
- return n
- }
- function getNames (d) {
- return Object.keys(getNames_(d))
- }
- function next () {
- if (!local || !global) return
- if (!npm.config.get('global')) {
- global = global.map(function (g) {
- return [g, '-g']
- })
- }
- var names = local.concat(global)
- return cb(null, names)
- }
- }
|