@@ -6,6 +6,8 @@ const { cmdList } = require('./cmd-list')
6
6
7
7
module . exports = ( valid = true ) => {
8
8
npm . config . set ( 'loglevel' , 'silent' )
9
+ const usesBrowser = npm . config . get ( 'viewer' ) === 'browser'
10
+ ? ' (in a browser)' : ''
9
11
npm . log . level = 'silent'
10
12
output ( `
11
13
Usage: npm <command>
@@ -16,8 +18,8 @@ npm test run this project's tests
16
18
npm run <foo> run the script named <foo>
17
19
npm <command> -h quick help on <command>
18
20
npm -l display usage info for all commands
19
- npm help <term> search for help on <term> (in a browser)
20
- npm help npm more involved overview (in a browser)
21
+ npm help <term> search for help on <term>${ usesBrowser }
22
+ npm help npm more involved overview${ usesBrowser }
21
23
22
24
All commands:
23
25
${ npm . config . get ( 'long' ) ? usages ( ) : ( '\n ' + wrap ( cmdList ) ) }
@@ -40,44 +42,34 @@ npm@${npm.version} ${dirname(dirname(__dirname))}
40
42
}
41
43
42
44
const wrap = ( arr ) => {
43
- var out = [ '' ]
44
- var l = 0
45
- var line
45
+ const out = [ '' ]
46
46
47
- line = process . stdout . columns
48
- if ( ! line )
49
- line = 60
50
- else
51
- line = Math . min ( 60 , Math . max ( line - 16 , 24 ) )
47
+ const line = ! process . stdout . columns ? 60
48
+ : Math . min ( 60 , Math . max ( process . stdout . columns - 16 , 24 ) )
52
49
53
- arr . sort ( function ( a , b ) {
54
- return a < b ? - 1 : 1
55
- } )
56
- . forEach ( function ( c ) {
57
- if ( out [ l ] . length + c . length + 2 < line )
58
- out [ l ] += ', ' + c
59
- else {
60
- out [ l ++ ] += ','
61
- out [ l ] = c
62
- }
63
- } )
50
+ let l = 0
51
+ for ( const c of arr . sort ( ( a , b ) => a < b ? - 1 : 1 ) ) {
52
+ if ( out [ l ] . length + c . length + 2 < line )
53
+ out [ l ] += ', ' + c
54
+ else {
55
+ out [ l ++ ] += ','
56
+ out [ l ] = c
57
+ }
58
+ }
64
59
return out . join ( '\n ' ) . substr ( 2 )
65
60
}
66
61
67
62
const usages = ( ) => {
68
63
// return a string of <command>: <usage>
69
- var maxLen = 0
70
- return cmdList . reduce ( function ( set , c ) {
71
- set . push ( [ c , require ( `./${ npm . deref ( c ) } .js` ) . usage || '' ] )
64
+ let maxLen = 0
65
+ return cmdList . reduce ( ( set , c ) => {
66
+ set . push ( [ c , require ( `../${ npm . deref ( c ) } .js` ) . usage ||
67
+ /* istanbul ignore next - all commands should have usage */ '' ] )
72
68
maxLen = Math . max ( maxLen , c . length )
73
69
return set
74
- } , [ ] ) . sort ( ( a , b ) => {
75
- return a [ 0 ] . localeCompare ( b [ 0 ] )
76
- } ) . map ( function ( item ) {
77
- var c = item [ 0 ]
78
- var usage = item [ 1 ]
79
- return '\n ' +
80
- c + ( new Array ( maxLen - c . length + 2 ) . join ( ' ' ) ) +
81
- ( usage . split ( '\n' ) . join ( '\n' + ( new Array ( maxLen + 6 ) . join ( ' ' ) ) ) )
82
- } ) . join ( '\n' )
70
+ } , [ ] )
71
+ . sort ( ( a , b ) => a [ 0 ] . localeCompare ( b [ 0 ] ) )
72
+ . map ( ( [ c , usage ] ) => `\n ${ c } ${ ' ' . repeat ( maxLen - c . length + 1 ) } ${
73
+ ( usage . split ( '\n' ) . join ( '\n' + ' ' . repeat ( maxLen + 5 ) ) ) } `)
74
+ . join ( '\n' )
83
75
}
0 commit comments