UNPKG

1.27 kBJavaScriptView Raw
1
2module.exports = star
3
4var npm = require("./npm.js")
5 , log = require("npmlog")
6 , asyncMap = require("slide").asyncMap
7 , mapToRegistry = require("./utils/map-to-registry.js")
8
9star.usage = "npm star <package> [pkg, pkg, ...]\n"
10 + "npm unstar <package> [pkg, pkg, ...]"
11
12star.completion = function (opts, cb) {
13 mapToRegistry("-/short", npm.config, function (er, uri, auth) {
14 if (er) return cb(er)
15
16 var params = {
17 timeout : 60000,
18 auth : auth
19 }
20 npm.registry.get(uri, params, function (er, list) {
21 return cb(null, list || [])
22 })
23 })
24}
25
26function star (args, cb) {
27 if (!args.length) return cb(star.usage)
28 var s = npm.config.get("unicode") ? "\u2605 " : "(*)"
29 , u = npm.config.get("unicode") ? "\u2606 " : "( )"
30 , using = !(npm.command.match(/^un/))
31 if (!using) s = u
32 asyncMap(args, function (pkg, cb) {
33 mapToRegistry(pkg, npm.config, function (er, uri, auth) {
34 if (er) return cb(er)
35
36 var params = {
37 starred : using,
38 auth : auth
39 }
40 npm.registry.star(uri, params, function (er, data, raw, req) {
41 if (!er) {
42 console.log(s + " "+pkg)
43 log.verbose("star", data)
44 }
45 cb(er, data, raw, req)
46 })
47 })
48 }, cb)
49}