isArrayOf

isArrayOf(itemPredicate)

Verifies if provided Validatable represents an array where each item matches provided itemPredicate.

Arguments:

  • itemPredicate - required, of type Predicate

Possible errors:

If provided Validatable is not an array:

{
    type: "isArray",
    path: [/* ... */]
}

If provided Validatable is an array that contains some items not matching the itemPredicate:

Errors for all not matching items will be returned, as errors returned by itemPredicate. path property of each error will point to the element in the array that didn't match.

Examples:

Each of examples uses this import statement:

const { asVerificable, isValid, isArrayOf, isString, getErrors } = require("verifica");

Non-array values (like string in this example) are not a valid array, and will fail with an isArray error:

const verificable = asVerificable("something");
isValid(verificable, isArrayOf(isString)); // false
getErrors(verificable, isArrayOf(isString)); // [{ type: "isArray", path: [] }]

Empty array satisfies any itemPredicate, since there are no array elements that doesn't match it:

const verificable = asVerificable([]);
isValid(verificable, isArrayOf(isString)); // true

If some items in the array doesn't match itemPredicate, isArrayOf fails returning errors for all not-matching items. Errors are as returned by itemPredicate, including item index in the array in the path property:

const verificable = asVerificable(["one", "two", null]);
isValid(verificable, isArrayOf(isString)); // false
getErrors(verificable, isArrayOf(isString)); // [{ type: "isString", path: [2] }]

Last updated