UNPKG

1.2 kBJavaScriptView Raw
1module.exports = star
2
3var npm = require('./npm.js')
4var log = require('npmlog')
5var asyncMap = require('slide').asyncMap
6var mapToRegistry = require('./utils/map-to-registry.js')
7var usage = require('./utils/usage')
8var output = require('./utils/output.js')
9
10star.usage = usage(
11 'star',
12 'npm star [<pkg>...]\n' +
13 'npm unstar [<pkg>...]'
14)
15
16star.completion = function (opts, cb) {
17 // FIXME: there used to be registry completion here, but it stopped making
18 // sense somewhere around 50,000 packages on the registry
19 cb()
20}
21
22function star (args, cb) {
23 if (!args.length) return cb(star.usage)
24 var s = npm.config.get('unicode') ? '\u2605 ' : '(*)'
25 var u = npm.config.get('unicode') ? '\u2606 ' : '( )'
26 var using = !(npm.command.match(/^un/))
27 if (!using) s = u
28 asyncMap(args, function (pkg, cb) {
29 mapToRegistry(pkg, npm.config, function (er, uri, auth) {
30 if (er) return cb(er)
31
32 var params = {
33 starred: using,
34 auth: auth
35 }
36 npm.registry.star(uri, params, function (er, data, raw, req) {
37 if (!er) {
38 output(s + ' ' + pkg)
39 log.verbose('star', data)
40 }
41 cb(er, data, raw, req)
42 })
43 })
44 }, cb)
45}