Monkey Albino

Linux altar53.supremepanel53.com 4.18.0-553.8.1.lve.el8.x86_64 #1 SMP Thu Jul 4 16:24:39 UTC 2024 x86_64
/ usr/ lib/ node_modules/ npm/ lib/

//usr/lib/node_modules/npm/lib/stars.js

'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)
}