D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
proc
/
thread-self
/
root
/
proc
/
thread-self
/
root
/
usr
/
lib
/
node_modules
/
npm
/
lib
/
Filename :
stars.js
back
Copy
'use strict' const BB = require('bluebird') const npmConfig = require('./config/figgy-config.js') const fetch = require('libnpm/fetch') const log = require('npmlog') const output = require('./utils/output.js') const whoami = require('./whoami.js') stars.usage = 'npm stars [<user>]' module.exports = stars function stars ([user], cb) { const opts = npmConfig() return BB.try(() => { return (user ? BB.resolve(user) : whoami([], true, () => {})).then(usr => { return fetch.json('/-/_view/starredByUser', opts.concat({ query: {key: `"${usr}"`} // WHY. WHY THE ""?! })) }).then(data => data.rows).then(stars => { if (stars.length === 0) { log.warn('stars', 'user has not starred any packages.') } else { stars.forEach(s => output(s.value)) } }) }).catch(err => { if (err.code === 'ENEEDAUTH') { throw Object.assign(new Error("'npm stars' on your own user account requires auth"), { code: 'ENEEDAUTH' }) } else { throw err } }).nodeify(cb) }