@@ -8,10 +8,14 @@ const quote: (x: string) => string = JSON.stringify
8
8
const buildLogLevelDefault = 'warning'
9
9
const transformLogLevelDefault = 'silent'
10
10
11
- function validateTarget ( target : string ) : string {
12
- validateStringValue ( target , 'target' )
13
- if ( target . indexOf ( ',' ) >= 0 ) throw new Error ( `Invalid target: ${ target } ` )
14
- return target
11
+ function validateAndJoinStringArray ( values : string [ ] , what : string ) : string {
12
+ const toJoin : string [ ] = [ ]
13
+ for ( const value of values ) {
14
+ validateStringValue ( value , what )
15
+ if ( value . indexOf ( ',' ) >= 0 ) throw new Error ( `Invalid ${ what } : ${ value } ` )
16
+ toJoin . push ( value )
17
+ }
18
+ return toJoin . join ( ',' )
15
19
}
16
20
17
21
let canBeAnything = ( ) => null
@@ -171,10 +175,7 @@ function pushCommonFlags(flags: string[], options: CommonOptions, keys: OptionKe
171
175
if ( legalComments ) flags . push ( `--legal-comments=${ legalComments } ` )
172
176
if ( sourceRoot !== void 0 ) flags . push ( `--source-root=${ sourceRoot } ` )
173
177
if ( sourcesContent !== void 0 ) flags . push ( `--sources-content=${ sourcesContent } ` )
174
- if ( target ) {
175
- if ( Array . isArray ( target ) ) flags . push ( `--target=${ Array . from ( target ) . map ( validateTarget ) . join ( ',' ) } ` )
176
- else flags . push ( `--target=${ validateTarget ( target ) } ` )
177
- }
178
+ if ( target ) flags . push ( `--target=${ validateAndJoinStringArray ( Array . isArray ( target ) ? target : [ target ] , 'target' ) } ` )
178
179
if ( format ) flags . push ( `--format=${ format } ` )
179
180
if ( globalName ) flags . push ( `--global-name=${ globalName } ` )
180
181
if ( platform ) flags . push ( `--platform=${ platform } ` )
@@ -189,7 +190,7 @@ function pushCommonFlags(flags: string[], options: CommonOptions, keys: OptionKe
189
190
if ( treeShaking !== void 0 ) flags . push ( `--tree-shaking=${ treeShaking } ` )
190
191
if ( ignoreAnnotations ) flags . push ( `--ignore-annotations` )
191
192
if ( drop ) for ( let what of drop ) flags . push ( `--drop:${ validateStringValue ( what , 'drop' ) } ` )
192
- if ( dropLabels ) flags . push ( `--drop-labels=${ Array . from ( dropLabels ) . map ( what => validateStringValue ( what , 'dropLabels' ) ) . join ( ', ') } ` )
193
+ if ( dropLabels ) flags . push ( `--drop-labels=${ validateAndJoinStringArray ( dropLabels , 'drop label ' ) } ` )
193
194
if ( mangleProps ) flags . push ( `--mangle-props=${ jsRegExpToGoRegExp ( mangleProps ) } ` )
194
195
if ( reserveProps ) flags . push ( `--reserve-props=${ jsRegExpToGoRegExp ( reserveProps ) } ` )
195
196
if ( mangleQuoted !== void 0 ) flags . push ( `--mangle-quoted=${ mangleQuoted } ` )
@@ -294,37 +295,13 @@ function flagsForBuildOptions(
294
295
if ( outbase ) flags . push ( `--outbase=${ outbase } ` )
295
296
if ( tsconfig ) flags . push ( `--tsconfig=${ tsconfig } ` )
296
297
if ( packages ) flags . push ( `--packages=${ packages } ` )
297
- if ( resolveExtensions ) {
298
- let values : string [ ] = [ ]
299
- for ( let value of resolveExtensions ) {
300
- validateStringValue ( value , 'resolve extension' )
301
- if ( value . indexOf ( ',' ) >= 0 ) throw new Error ( `Invalid resolve extension: ${ value } ` )
302
- values . push ( value )
303
- }
304
- flags . push ( `--resolve-extensions=${ values . join ( ',' ) } ` )
305
- }
298
+ if ( resolveExtensions ) flags . push ( `--resolve-extensions=${ validateAndJoinStringArray ( resolveExtensions , 'resolve extension' ) } ` )
306
299
if ( publicPath ) flags . push ( `--public-path=${ publicPath } ` )
307
300
if ( entryNames ) flags . push ( `--entry-names=${ entryNames } ` )
308
301
if ( chunkNames ) flags . push ( `--chunk-names=${ chunkNames } ` )
309
302
if ( assetNames ) flags . push ( `--asset-names=${ assetNames } ` )
310
- if ( mainFields ) {
311
- let values : string [ ] = [ ]
312
- for ( let value of mainFields ) {
313
- validateStringValue ( value , 'main field' )
314
- if ( value . indexOf ( ',' ) >= 0 ) throw new Error ( `Invalid main field: ${ value } ` )
315
- values . push ( value )
316
- }
317
- flags . push ( `--main-fields=${ values . join ( ',' ) } ` )
318
- }
319
- if ( conditions ) {
320
- let values : string [ ] = [ ]
321
- for ( let value of conditions ) {
322
- validateStringValue ( value , 'condition' )
323
- if ( value . indexOf ( ',' ) >= 0 ) throw new Error ( `Invalid condition: ${ value } ` )
324
- values . push ( value )
325
- }
326
- flags . push ( `--conditions=${ values . join ( ',' ) } ` )
327
- }
303
+ if ( mainFields ) flags . push ( `--main-fields=${ validateAndJoinStringArray ( mainFields , 'main field' ) } ` )
304
+ if ( conditions ) flags . push ( `--conditions=${ validateAndJoinStringArray ( conditions , 'condition' ) } ` )
328
305
if ( external ) for ( let name of external ) flags . push ( `--external:${ validateStringValue ( name , 'external' ) } ` )
329
306
if ( alias ) {
330
307
for ( let old in alias ) {
0 commit comments