@@ -204,6 +204,13 @@ function getUint(name: string, value: unknown): number {
204204 return parsedValue ;
205205}
206206
207+
208+ function toArray < T > ( value : T ) : T [ ] ;
209+ function toArray < T > ( value : T [ ] ) : T [ ] ;
210+ function toArray < T > ( value : T | T [ ] ) : T [ ] {
211+ return Array . isArray ( value ) ? value : [ value ] ;
212+ }
213+
207214function toRecord ( value : string ) : Record < string , any > {
208215 const record = Object . create ( null ) ;
209216 const keyValuePairs = value . split ( ',' ) ;
@@ -324,23 +331,11 @@ export function parseOptions(
324331 ] ) ;
325332
326333 for ( const key of allKeys ) {
327- const values = [ ] ;
328- if ( objectOptions . has ( key ) ) {
329- const options = Array . isArray ( objectOptions . get ( key ) )
330- ? objectOptions . get ( key )
331- : [ objectOptions . get ( key ) ] ;
332- values . push ( ...options ) ;
333- }
334- if ( urlOptions . has ( key ) ) {
335- const options = urlOptions . get ( key ) ?? [ ] ;
336- values . push ( ...options ) ;
337- }
338- if ( DEFAULT_OPTIONS . has ( key ) ) {
339- const options = Array . isArray ( DEFAULT_OPTIONS . get ( key ) )
340- ? DEFAULT_OPTIONS . get ( key )
341- : [ DEFAULT_OPTIONS . get ( key ) ] ;
342- values . push ( ...options ) ;
343- }
334+ const values = [ objectOptions , urlOptions , DEFAULT_OPTIONS ] . flatMap ( optionsObject => {
335+ const options = optionsObject . get ( key ) ?? [ ] ;
336+ return toArray ( options ) ;
337+ } ) ;
338+
344339 allOptions . set ( key , values ) ;
345340 }
346341
0 commit comments