@@ -41,6 +41,9 @@ let mustBeFunction = (value: Function | undefined): string | null =>
41
41
let mustBeArray = < T > ( value : T [ ] | undefined ) : string | null =>
42
42
Array . isArray ( value ) ? null : 'an array'
43
43
44
+ let mustBeArrayOfStrings = ( value : string [ ] | undefined ) : string | null =>
45
+ Array . isArray ( value ) && value . every ( x => typeof x === 'string' ) ? null : 'an array of strings'
46
+
44
47
let mustBeObject = ( value : Object | undefined ) : string | null =>
45
48
typeof value === 'object' && value !== null && ! Array . isArray ( value ) ? null : 'an object'
46
49
@@ -153,8 +156,8 @@ function pushCommonFlags(flags: string[], options: CommonOptions, keys: OptionKe
153
156
let minifyWhitespace = getFlag ( options , keys , 'minifyWhitespace' , mustBeBoolean )
154
157
let minifyIdentifiers = getFlag ( options , keys , 'minifyIdentifiers' , mustBeBoolean )
155
158
let lineLimit = getFlag ( options , keys , 'lineLimit' , mustBeInteger )
156
- let drop = getFlag ( options , keys , 'drop' , mustBeArray )
157
- let dropLabels = getFlag ( options , keys , 'dropLabels' , mustBeArray )
159
+ let drop = getFlag ( options , keys , 'drop' , mustBeArrayOfStrings )
160
+ let dropLabels = getFlag ( options , keys , 'dropLabels' , mustBeArrayOfStrings )
158
161
let charset = getFlag ( options , keys , 'charset' , mustBeString )
159
162
let treeShaking = getFlag ( options , keys , 'treeShaking' , mustBeBoolean )
160
163
let ignoreAnnotations = getFlag ( options , keys , 'ignoreAnnotations' , mustBeBoolean )
@@ -167,7 +170,7 @@ function pushCommonFlags(flags: string[], options: CommonOptions, keys: OptionKe
167
170
let define = getFlag ( options , keys , 'define' , mustBeObject )
168
171
let logOverride = getFlag ( options , keys , 'logOverride' , mustBeObject )
169
172
let supported = getFlag ( options , keys , 'supported' , mustBeObject )
170
- let pure = getFlag ( options , keys , 'pure' , mustBeArray )
173
+ let pure = getFlag ( options , keys , 'pure' , mustBeArrayOfStrings )
171
174
let keepNames = getFlag ( options , keys , 'keepNames' , mustBeBoolean )
172
175
let platform = getFlag ( options , keys , 'platform' , mustBeString )
173
176
let tsconfigRaw = getFlag ( options , keys , 'tsconfigRaw' , mustBeStringOrObject )
@@ -259,11 +262,11 @@ function flagsForBuildOptions(
259
262
let outdir = getFlag ( options , keys , 'outdir' , mustBeString )
260
263
let outbase = getFlag ( options , keys , 'outbase' , mustBeString )
261
264
let tsconfig = getFlag ( options , keys , 'tsconfig' , mustBeString )
262
- let resolveExtensions = getFlag ( options , keys , 'resolveExtensions' , mustBeArray )
263
- let nodePathsInput = getFlag ( options , keys , 'nodePaths' , mustBeArray )
264
- let mainFields = getFlag ( options , keys , 'mainFields' , mustBeArray )
265
- let conditions = getFlag ( options , keys , 'conditions' , mustBeArray )
266
- let external = getFlag ( options , keys , 'external' , mustBeArray )
265
+ let resolveExtensions = getFlag ( options , keys , 'resolveExtensions' , mustBeArrayOfStrings )
266
+ let nodePathsInput = getFlag ( options , keys , 'nodePaths' , mustBeArrayOfStrings )
267
+ let mainFields = getFlag ( options , keys , 'mainFields' , mustBeArrayOfStrings )
268
+ let conditions = getFlag ( options , keys , 'conditions' , mustBeArrayOfStrings )
269
+ let external = getFlag ( options , keys , 'external' , mustBeArrayOfStrings )
267
270
let packages = getFlag ( options , keys , 'packages' , mustBeString )
268
271
let alias = getFlag ( options , keys , 'alias' , mustBeObject )
269
272
let loader = getFlag ( options , keys , 'loader' , mustBeObject )
@@ -272,7 +275,7 @@ function flagsForBuildOptions(
272
275
let entryNames = getFlag ( options , keys , 'entryNames' , mustBeString )
273
276
let chunkNames = getFlag ( options , keys , 'chunkNames' , mustBeString )
274
277
let assetNames = getFlag ( options , keys , 'assetNames' , mustBeString )
275
- let inject = getFlag ( options , keys , 'inject' , mustBeArray )
278
+ let inject = getFlag ( options , keys , 'inject' , mustBeArrayOfStrings )
276
279
let banner = getFlag ( options , keys , 'banner' , mustBeObject )
277
280
let footer = getFlag ( options , keys , 'footer' , mustBeObject )
278
281
let entryPoints = getFlag ( options , keys , 'entryPoints' , mustBeEntryPoints )
@@ -1386,8 +1389,8 @@ let handlePlugins = async (
1386
1389
let pluginData = getFlag ( result , keys , 'pluginData' , canBeAnything )
1387
1390
let errors = getFlag ( result , keys , 'errors' , mustBeArray )
1388
1391
let warnings = getFlag ( result , keys , 'warnings' , mustBeArray )
1389
- let watchFiles = getFlag ( result , keys , 'watchFiles' , mustBeArray )
1390
- let watchDirs = getFlag ( result , keys , 'watchDirs' , mustBeArray )
1392
+ let watchFiles = getFlag ( result , keys , 'watchFiles' , mustBeArrayOfStrings )
1393
+ let watchDirs = getFlag ( result , keys , 'watchDirs' , mustBeArrayOfStrings )
1391
1394
checkForInvalidFlags ( result , keys , `from onResolve() callback in plugin ${ quote ( name ) } ` )
1392
1395
1393
1396
response . id = id
@@ -1435,8 +1438,8 @@ let handlePlugins = async (
1435
1438
let loader = getFlag ( result , keys , 'loader' , mustBeString )
1436
1439
let errors = getFlag ( result , keys , 'errors' , mustBeArray )
1437
1440
let warnings = getFlag ( result , keys , 'warnings' , mustBeArray )
1438
- let watchFiles = getFlag ( result , keys , 'watchFiles' , mustBeArray )
1439
- let watchDirs = getFlag ( result , keys , 'watchDirs' , mustBeArray )
1441
+ let watchFiles = getFlag ( result , keys , 'watchFiles' , mustBeArrayOfStrings )
1442
+ let watchDirs = getFlag ( result , keys , 'watchDirs' , mustBeArrayOfStrings )
1440
1443
checkForInvalidFlags ( result , keys , `from onLoad() callback in plugin ${ quote ( name ) } ` )
1441
1444
1442
1445
response . id = id
0 commit comments