Teki
Rules

Array

Validate arrays, iterables, array elements, and arrays of objects.

Use array("field") for array and Iterable values.

Teki schema = Teki.fromRules(
    array("tags").required().min(1).max(10),
    array("roles").elements().string().min(2).max(32)
);

Available methods

MethodPurpose
required()Reject missing arrays
optional()Skip validation when the value is missing
min(int)Require a minimum size
max(int)Require a maximum size
between(int, int)Require a size range
length(int)Require an exact size
elements()Validate each element with element rules
objects(Builder...)Validate each element as an object
custom(Rule)Attach a custom rule

Element rules

elements() returns an element builder for validating each item:

array("scores").elements().number().min(0).max(100)
array("flags").elements().bool(true)
array("codes").elements().string().length(6)

Arrays of objects

Use objects(...) when every element has fields of its own:

Teki schema = Teki.fromRules(
    array("items").objects(
        string("sku").required(),
        number("quantity").required().min(1)
    )
);

On this page