Skip to content

Instantly share code, notes, and snippets.

@mikeal
Created February 16, 2016 00:49
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mikeal/0e1709b592e22be56778 to your computer and use it in GitHub Desktop.
Save mikeal/0e1709b592e22be56778 to your computer and use it in GitHub Desktop.
Calculate the average number of dependencies in all modules on npm.
var request = require('request')
, JSONStream = require('JSONStream')
, deps = []
request('https://skimdb.npmjs.com/registry/_all_docs?include_docs=true')
.pipe(JSONStream.parse('rows.*.doc'))
.on('data', function (obj) {
// project against outdated or broken package.json
if (!obj['dist-tags']) return
if (!obj['dist-tags'].latest) return
if (!obj.versions[latest]) return
// get latest deps count
var latest = obj['dist-tags'].latest
var count = obj.versions[latest].dependencies ? Object.keys(obj.versions[latest].dependencies).length : 0
deps.push(count)
})
.on('end', function () {
var sum = function (a, b) {return a + b}
console.log(deps.reduce(sum) / deps.length)
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment