import { and, all } from '../../../deps'
import isArray from './isArray'
/**
* @desc every item in an array matches predicate
* @since 4.0.0 was in validatorBuilder
* @version 5.0.0
*
* @memberOf is
* @param predicate test to pass on every item in an array
* @return all match predicate
*
* @curried 2
*
* @example
*
* isArrayOf(isTrue)([true, true]) //=> true
* isArrayOf(isEmpty)(['']) //=> true
*
* isArrayOf(isBoolean)([true, false, 1, 2, 0]) //=> false
* isArrayOf(isString)(['string', Number]) //=> false
*
*/
export interface IsArrayOfPredicate extends Function {
(value: any, key?: any): boolean
}
function isArrayOf(predicate: IsArrayOfPredicate): boolean {
return and(isArray, all(predicate))
}
export { isArrayOf }
export default isArrayOf