/**
* @author [Tristan Valcke]{@link https://github.com/Itee}
* @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}
*
* @module sources/cores/arrays/isArrayOfString
* @desc Export function to validate if a value is an array of string or not
* @example
*
* import { isArrayOfString } from 'itee-validators'
*
* if( isArrayOfString( value ) ) {
* //...
* } else {
* //...
* }
*
*/
import { isNotString } from '../strings/isString'
import { isNotArray } from './isArray'
import { isEmptyArray } from './isEmptyArray'
/**
* Check if given data is not an empty array where all values are string
*
* @param data {*} The data to check against the array of strings
* @returns {boolean} true if data is not an empty array where all values are string, false otherwise
*/
export function isArrayOfString( data ) {
if ( isNotArray( data ) ) { return false }
if ( isEmptyArray( data ) ) { return false }
for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {
if ( isNotString( data[ index ] ) ) {
return false
}
}
return true
}
/**
* Check if given data is not an empty array where all values are not string
*
* @param data {*} The data to check against the array of strings
* @returns {boolean} true if data is not an empty array where all values are not string, false otherwise
*/
export function isNotArrayOfString( data ) {
if ( isNotArray( data ) ) { return true }
if ( isEmptyArray( data ) ) { return true }
for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {
if ( isNotString( data[ index ] ) ) {
return true
}
}
return false
}
// #if IS_REMOVE_ON_BUILD
export function isArrayOfString_1( data ) {
if ( !Array.isArray( data ) ) {
return false
}
const dataLength = data.length
if ( dataLength === 0 ) {
return false
}
for ( let index = 0, arrayLength = data.length ; index < arrayLength ; index += 1 ) {
if ( typeof data[ index ] !== 'string' ) {
return false
}
}
return true
}
// #endif