Skip to content

Instantly share code, notes, and snippets.

@japj
Forked from isaacs/alerts.js
Created July 21, 2011 20:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save japj/1098167 to your computer and use it in GitHub Desktop.
Save japj/1098167 to your computer and use it in GitHub Desktop.
var follow = require("follow")
var seen = {}
follow({ db: "http://isaacs.ic.ht/registry"
, since: 20267
, include_docs: true }, function (er, update) {
if (er) throw er
var doc = update.doc
// no more than once per second per package
if (seen[doc._id]) return
seen[doc._id] = setTimeout(function () {
delete seen[doc._id]
}, 1000)
var ver
if (doc._deleted) {
ver = ""
doc.description = "REMOVED"
doc.maintainers = []
doc.homepage = " "
} else ver = doc["dist-tags"].latest
doc.homepage = getHomepage(doc)
console.log(doc._id + " " + ver + " " +
doc.maintainers.map(function (m) { return m.name }).join(" ") +
" " + doc.homepage +
"\n " + (doc.description || ""))
})
function getHomepage (d) {
var homepage = d.homepage
, repo = d.repository || d.repositories
if (homepage) return homepage
if (repo) {
if (Array.isArray(repo)) repo = repo.shift()
if (repo.url) repo = repo.url
if (repo) {
return repo.replace(/^git(@|:\/\/)/, 'http://')
.replace(/\.git$/, '')
}
}
return "http://search.npmjs.org/#/" + d.name
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment