(
name: string,
input: any,
numDataset: number,
defaultValue: string,
validator: Function,
allowNoValidValue: boolean
)
| 387 | } |
| 388 | |
| 389 | function getStringArrayFromInput( |
| 390 | name: string, |
| 391 | input: any, |
| 392 | numDataset: number, |
| 393 | defaultValue: string, |
| 394 | validator: Function, |
| 395 | allowNoValidValue: boolean |
| 396 | ): Array<string> | string { |
| 397 | let array: Array<string> = []; |
| 398 | let errorMessage = ""; |
| 399 | let numValidValue = 0; |
| 400 | |
| 401 | while (numDataset > array.length) { |
| 402 | array.push(defaultValue); |
| 403 | } |
| 404 | |
| 405 | if (typeof input === "undefined" || input === null) { |
| 406 | // all defaultValue |
| 407 | } else if (typeof input === "object" && input !== null) { |
| 408 | if (Array.isArray(input)) { |
| 409 | if (input.length > numDataset) { |
| 410 | errorMessage = "Too many inputs for parameter '" + name + "'"; |
| 411 | return errorMessage; |
| 412 | } |
| 413 | if (input.length === 0) { |
| 414 | errorMessage = "Empty array not allowd for " + name; |
| 415 | return errorMessage; |
| 416 | } |
| 417 | for (let ind = 0; ind < array.length; ind++) { |
| 418 | if (ind < input.length) { |
| 419 | let curr = input[ind]; |
| 420 | let prev = null; |
| 421 | if (ind > 0) { |
| 422 | prev = input[ind - 1].trim(); |
| 423 | } |
| 424 | if (typeof curr === "string") { |
| 425 | curr = curr.trim(); |
| 426 | if (curr === "") { |
| 427 | if (prev !== null) { |
| 428 | array[ind] = prev; |
| 429 | } else { |
| 430 | array[ind] = defaultValue; |
| 431 | } |
| 432 | } else { |
| 433 | if (validator) { |
| 434 | if (validator(curr)) { |
| 435 | array[ind] = curr; |
| 436 | numValidValue++; |
| 437 | } else { |
| 438 | errorMessage = "Invalid inputs for " + name; |
| 439 | break; |
| 440 | } |
| 441 | } else { |
| 442 | array[ind] = curr; |
| 443 | numValidValue++; |
| 444 | } |
| 445 | } |
| 446 | } else { |
no test coverage detected