@@ -41,6 +41,9 @@ let mustBeFunction = (value: Function | undefined): string | null =>
4141let mustBeArray = < T > ( value : T [ ] | undefined ) : string | null =>
4242 Array . isArray ( value ) ? null : 'an array'
4343
44+ let mustBeArrayOfStrings = ( value : string [ ] | undefined ) : string | null =>
45+ Array . isArray ( value ) && value . every ( x => typeof x === 'string' ) ? null : 'an array of strings'
46+
4447let mustBeObject = ( value : Object | undefined ) : string | null =>
4548 typeof value === 'object' && value !== null && ! Array . isArray ( value ) ? null : 'an object'
4649
@@ -153,8 +156,8 @@ function pushCommonFlags(flags: string[], options: CommonOptions, keys: OptionKe
153156 let minifyWhitespace = getFlag ( options , keys , 'minifyWhitespace' , mustBeBoolean )
154157 let minifyIdentifiers = getFlag ( options , keys , 'minifyIdentifiers' , mustBeBoolean )
155158 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 )
158161 let charset = getFlag ( options , keys , 'charset' , mustBeString )
159162 let treeShaking = getFlag ( options , keys , 'treeShaking' , mustBeBoolean )
160163 let ignoreAnnotations = getFlag ( options , keys , 'ignoreAnnotations' , mustBeBoolean )
@@ -167,7 +170,7 @@ function pushCommonFlags(flags: string[], options: CommonOptions, keys: OptionKe
167170 let define = getFlag ( options , keys , 'define' , mustBeObject )
168171 let logOverride = getFlag ( options , keys , 'logOverride' , mustBeObject )
169172 let supported = getFlag ( options , keys , 'supported' , mustBeObject )
170- let pure = getFlag ( options , keys , 'pure' , mustBeArray )
173+ let pure = getFlag ( options , keys , 'pure' , mustBeArrayOfStrings )
171174 let keepNames = getFlag ( options , keys , 'keepNames' , mustBeBoolean )
172175 let platform = getFlag ( options , keys , 'platform' , mustBeString )
173176 let tsconfigRaw = getFlag ( options , keys , 'tsconfigRaw' , mustBeStringOrObject )
@@ -259,11 +262,11 @@ function flagsForBuildOptions(
259262 let outdir = getFlag ( options , keys , 'outdir' , mustBeString )
260263 let outbase = getFlag ( options , keys , 'outbase' , mustBeString )
261264 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 )
267270 let packages = getFlag ( options , keys , 'packages' , mustBeString )
268271 let alias = getFlag ( options , keys , 'alias' , mustBeObject )
269272 let loader = getFlag ( options , keys , 'loader' , mustBeObject )
@@ -272,7 +275,7 @@ function flagsForBuildOptions(
272275 let entryNames = getFlag ( options , keys , 'entryNames' , mustBeString )
273276 let chunkNames = getFlag ( options , keys , 'chunkNames' , mustBeString )
274277 let assetNames = getFlag ( options , keys , 'assetNames' , mustBeString )
275- let inject = getFlag ( options , keys , 'inject' , mustBeArray )
278+ let inject = getFlag ( options , keys , 'inject' , mustBeArrayOfStrings )
276279 let banner = getFlag ( options , keys , 'banner' , mustBeObject )
277280 let footer = getFlag ( options , keys , 'footer' , mustBeObject )
278281 let entryPoints = getFlag ( options , keys , 'entryPoints' , mustBeEntryPoints )
@@ -1386,8 +1389,8 @@ let handlePlugins = async (
13861389 let pluginData = getFlag ( result , keys , 'pluginData' , canBeAnything )
13871390 let errors = getFlag ( result , keys , 'errors' , mustBeArray )
13881391 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 )
13911394 checkForInvalidFlags ( result , keys , `from onResolve() callback in plugin ${ quote ( name ) } ` )
13921395
13931396 response . id = id
@@ -1435,8 +1438,8 @@ let handlePlugins = async (
14351438 let loader = getFlag ( result , keys , 'loader' , mustBeString )
14361439 let errors = getFlag ( result , keys , 'errors' , mustBeArray )
14371440 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 )
14401443 checkForInvalidFlags ( result , keys , `from onLoad() callback in plugin ${ quote ( name ) } ` )
14411444
14421445 response . id = id
0 commit comments