"Fossies" - the Fresh Open Source Software Archive

Member "Atom/resources/app/apm/node_modules/npm/lib/utils/completion/installed-shallow.js" (7 Feb 2017, 1936 Bytes) of archive /windows/misc/atom-windows.zip:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Javascript source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 
    2 module.exports = installedShallow
    3 
    4 var npm = require('../../npm.js')
    5 var fs = require('graceful-fs')
    6 var path = require('path')
    7 var readJson = require('read-package-json')
    8 var asyncMap = require('slide').asyncMap
    9 
   10 function installedShallow (opts, filter, cb) {
   11   if (typeof cb !== 'function') {
   12     cb = filter
   13     filter = null
   14   }
   15   var conf = opts.conf
   16   var args = conf.argv.remain
   17   if (args.length > 3) return cb()
   18   var local
   19   var global
   20   var localDir = npm.dir
   21   var globalDir = npm.globalDir
   22   if (npm.config.get('global')) {
   23     local = []
   24     next()
   25   } else {
   26     fs.readdir(localDir, function (er, pkgs) {
   27       local = (pkgs || []).filter(function (p) {
   28         return p.charAt(0) !== '.'
   29       })
   30       next()
   31     })
   32   }
   33 
   34   fs.readdir(globalDir, function (er, pkgs) {
   35     global = (pkgs || []).filter(function (p) {
   36       return p.charAt(0) !== '.'
   37     })
   38     next()
   39   })
   40   function next () {
   41     if (!local || !global) return
   42     filterInstalled(local, global, filter, cb)
   43   }
   44 }
   45 
   46 function filterInstalled (local, global, filter, cb) {
   47   var fl
   48   var fg
   49 
   50   if (!filter) {
   51     fl = local
   52     fg = global
   53     return next()
   54   }
   55 
   56   asyncMap(local, function (p, cb) {
   57     readJson(path.join(npm.dir, p, 'package.json'), function (er, d) {
   58       if (!d || !filter(d)) return cb(null, [])
   59       return cb(null, d.name)
   60     })
   61   }, function (er, local) {
   62     fl = local || []
   63     next()
   64   })
   65 
   66   var globalDir = npm.globalDir
   67   asyncMap(global, function (p, cb) {
   68     readJson(path.join(globalDir, p, 'package.json'), function (er, d) {
   69       if (!d || !filter(d)) return cb(null, [])
   70       return cb(null, d.name)
   71     })
   72   }, function (er, global) {
   73     fg = global || []
   74     next()
   75   })
   76 
   77   function next () {
   78     if (!fg || !fl) return
   79     if (!npm.config.get('global')) {
   80       fg = fg.map(function (g) {
   81         return [g, '-g']
   82       })
   83     }
   84     console.error('filtered', fl, fg)
   85     return cb(null, fl.concat(fg))
   86   }
   87 }