@@ -28,90 +28,70 @@ const cmd = module.exports = {}
28
28
cmd . public = ( spec , opts ) => setAccess ( spec , 'public' , opts )
29
29
cmd . restricted = ( spec , opts ) => setAccess ( spec , 'restricted' , opts )
30
30
function setAccess ( spec , access , opts = { } ) {
31
- return new Promise ( ( resolve , reject ) => {
32
- try {
33
- spec = npar ( spec )
34
- validate ( 'OSO' , [ spec , access , opts ] )
35
- const uri = `/-/package/${ eu ( spec . name ) } /access`
36
- return npmFetch ( uri , {
37
- ...opts ,
38
- method : 'POST' ,
39
- body : { access } ,
40
- spec
41
- } )
42
- . then ( ( ) => resolve ( true ) )
43
- . catch ( reject )
44
- } catch ( err ) {
45
- return reject ( err )
46
- }
31
+ return Promise . resolve ( ) . then ( ( ) => {
32
+ spec = npar ( spec )
33
+ validate ( 'OSO' , [ spec , access , opts ] )
34
+ const uri = `/-/package/${ eu ( spec . name ) } /access`
35
+ return npmFetch ( uri , {
36
+ ...opts ,
37
+ method : 'POST' ,
38
+ body : { access } ,
39
+ spec
40
+ } ) . then ( ( ) => true )
47
41
} )
48
42
}
49
43
50
44
cmd . grant = ( spec , entity , permissions , opts = { } ) => {
51
- return new Promise ( ( resolve , reject ) => {
52
- try {
53
- spec = npar ( spec )
54
- const { scope, team } = splitEntity ( entity )
55
- validate ( 'OSSSO' , [ spec , scope , team , permissions , opts ] )
56
- if ( permissions !== 'read-write' && permissions !== 'read-only' ) {
57
- throw new Error ( '`permissions` must be `read-write` or `read-only`. Got `' + permissions + '` instead' )
58
- }
59
- const uri = `/-/team/${ eu ( scope ) } /${ eu ( team ) } /package`
60
- return npmFetch ( uri , {
61
- ...opts ,
62
- method : 'PUT' ,
63
- body : { package : spec . name , permissions } ,
64
- scope,
65
- spec,
66
- ignoreBody : true
67
- } )
68
- . then ( ( ) => resolve ( true ) )
69
- . catch ( reject )
70
- } catch ( err ) {
71
- return reject ( err )
45
+ return Promise . resolve ( ) . then ( ( ) => {
46
+ spec = npar ( spec )
47
+ const { scope, team } = splitEntity ( entity )
48
+ validate ( 'OSSSO' , [ spec , scope , team , permissions , opts ] )
49
+ if ( permissions !== 'read-write' && permissions !== 'read-only' ) {
50
+ throw new Error ( '`permissions` must be `read-write` or `read-only`. Got `' + permissions + '` instead' )
72
51
}
52
+ const uri = `/-/team/${ eu ( scope ) } /${ eu ( team ) } /package`
53
+ return npmFetch ( uri , {
54
+ ...opts ,
55
+ method : 'PUT' ,
56
+ body : { package : spec . name , permissions } ,
57
+ scope,
58
+ spec,
59
+ ignoreBody : true
60
+ } )
61
+ . then ( ( ) => true )
73
62
} )
74
63
}
75
64
76
65
cmd . revoke = ( spec , entity , opts = { } ) => {
77
- return new Promise ( ( resolve , reject ) => {
78
- try {
79
- spec = npar ( spec )
80
- const { scope, team } = splitEntity ( entity )
81
- validate ( 'OSSO' , [ spec , scope , team , opts ] )
82
- const uri = `/-/team/${ eu ( scope ) } /${ eu ( team ) } /package`
83
- return npmFetch ( uri , {
84
- ...opts ,
85
- method : 'DELETE' ,
86
- body : { package : spec . name } ,
87
- scope,
88
- spec,
89
- ignoreBody : true
90
- } )
91
- . then ( ( ) => resolve ( true ) )
92
- . catch ( reject )
93
- } catch ( err ) {
94
- return reject ( err )
95
- }
66
+ return Promise . resolve ( ) . then ( ( ) => {
67
+ spec = npar ( spec )
68
+ const { scope, team } = splitEntity ( entity )
69
+ validate ( 'OSSO' , [ spec , scope , team , opts ] )
70
+ const uri = `/-/team/${ eu ( scope ) } /${ eu ( team ) } /package`
71
+ return npmFetch ( uri , {
72
+ ...opts ,
73
+ method : 'DELETE' ,
74
+ body : { package : spec . name } ,
75
+ scope,
76
+ spec,
77
+ ignoreBody : true
78
+ } )
79
+ . then ( ( ) => true )
96
80
} )
97
81
}
98
82
99
83
cmd . lsPackages = ( entity , opts ) => {
100
- return new Promise ( ( resolve , reject ) => {
101
- return cmd . lsPackages . stream ( entity , opts )
102
- . collect ( )
103
- . then ( data => {
104
- const packageList = data . reduce ( ( acc , [ key , val ] ) => {
105
- if ( ! acc ) {
106
- acc = { }
107
- }
108
- acc [ key ] = val
109
- return acc
110
- } , null )
111
- return resolve ( packageList )
112
- } )
113
- . catch ( reject )
114
- } )
84
+ return cmd . lsPackages . stream ( entity , opts )
85
+ . collect ( )
86
+ . then ( data => {
87
+ return data . reduce ( ( acc , [ key , val ] ) => {
88
+ if ( ! acc ) {
89
+ acc = { }
90
+ }
91
+ acc [ key ] = val
92
+ return acc
93
+ } , null )
94
+ } )
115
95
}
116
96
117
97
cmd . lsPackages . stream = ( entity , opts = { } ) => {
@@ -123,77 +103,74 @@ cmd.lsPackages.stream = (entity, opts = {}) => {
123
103
} else {
124
104
uri = `/-/org/${ eu ( scope ) } /package`
125
105
}
126
- opts . query = { format : 'cli' }
127
- opts . mapJSON = mapJSON
106
+ const nextOpts = {
107
+ ...opts ,
108
+ query : { format : 'cli' } ,
109
+ mapJSON
110
+ }
128
111
const ret = new Minipass ( { objectMode : true } )
129
- npmFetch . json . stream ( uri , '*' , opts ) . on ( 'error' , err => {
130
- if ( err . code === 'E404' && ! team ) {
131
- uri = `/-/user/${ eu ( scope ) } /package`
132
- npmFetch . json . stream ( uri , '*' , opts ) . on (
133
- 'error' , err => ret . emit ( 'error' , err )
134
- ) . pipe ( ret )
135
- } else {
136
- ret . emit ( 'error' , err )
137
- }
138
- } ) . pipe ( ret )
112
+ npmFetch . json . stream ( uri , '*' , nextOpts )
113
+ . on ( 'error' , err => {
114
+ if ( err . code === 'E404' && ! team ) {
115
+ uri = `/-/user/${ eu ( scope ) } /package`
116
+ npmFetch . json . stream ( uri , '*' , nextOpts )
117
+ . on ( 'error' , err => ret . emit ( 'error' , err ) )
118
+ . pipe ( ret )
119
+ } else {
120
+ ret . emit ( 'error' , err )
121
+ }
122
+ } )
123
+ . pipe ( ret )
139
124
return ret
140
125
}
141
126
142
127
cmd . lsCollaborators = ( spec , user , opts ) => {
143
- if ( typeof user === 'object' && ! opts ) {
144
- opts = user
145
- user = undefined
146
- }
147
- return new Promise ( ( resolve , reject ) => {
128
+ return Promise . resolve ( ) . then ( ( ) => {
148
129
return cmd . lsCollaborators . stream ( spec , user , opts )
149
130
. collect ( )
150
131
. then ( data => {
151
- const collabList = data . reduce ( ( acc , [ key , val ] ) => {
132
+ return data . reduce ( ( acc , [ key , val ] ) => {
152
133
if ( ! acc ) {
153
134
acc = { }
154
135
}
155
136
acc [ key ] = val
156
137
return acc
157
138
} , null )
158
- return resolve ( collabList )
159
139
} )
160
- . catch ( reject )
161
140
} )
162
141
}
163
142
164
143
cmd . lsCollaborators . stream = ( spec , user , opts ) => {
165
144
if ( typeof user === 'object' && ! opts ) {
166
145
opts = user
167
146
user = undefined
147
+ } else if ( ! opts ) {
148
+ opts = { }
168
149
}
169
150
spec = npar ( spec )
170
151
validate ( 'OSO|OZO' , [ spec , user , opts ] )
171
152
const uri = `/-/package/${ eu ( spec . name ) } /collaborators`
172
- opts . query = { format : 'cli' , user : user || undefined }
173
- opts . mapJSON = mapJSON
174
- return npmFetch . json . stream ( uri , '*' , opts )
153
+ return npmFetch . json . stream ( uri , '*' , {
154
+ ...opts ,
155
+ query : { format : 'cli' , user : user || undefined } ,
156
+ mapJSON
157
+ } )
175
158
}
176
159
177
160
cmd . tfaRequired = ( spec , opts ) => setRequires2fa ( spec , true , opts )
178
161
cmd . tfaNotRequired = ( spec , opts ) => setRequires2fa ( spec , false , opts )
179
162
function setRequires2fa ( spec , required , opts = { } ) {
180
- return new Promise ( ( resolve , reject ) => {
181
- try {
182
- spec = npar ( spec )
183
- validate ( 'OBO' , [ spec , required , opts ] )
184
- const uri = `/-/package/${ eu ( spec . name ) } /access`
185
- return npmFetch ( uri , {
186
- ...opts ,
187
- method : 'POST' ,
188
- body : { publish_requires_tfa : required } ,
189
- spec,
190
- ignoreBody : true
191
- } )
192
- . then ( ( ) => resolve ( true ) )
193
- . catch ( reject )
194
- } catch ( err ) {
195
- return reject ( err )
196
- }
163
+ return Promise . resolve ( ) . then ( ( ) => {
164
+ spec = npar ( spec )
165
+ validate ( 'OBO' , [ spec , required , opts ] )
166
+ const uri = `/-/package/${ eu ( spec . name ) } /access`
167
+ return npmFetch ( uri , {
168
+ ...opts ,
169
+ method : 'POST' ,
170
+ body : { publish_requires_tfa : required } ,
171
+ spec,
172
+ ignoreBody : true
173
+ } ) . then ( ( ) => true )
197
174
} )
198
175
}
199
176
0 commit comments