UNPKG

@vitruvius-labs/ts-predicate

Version:
23 lines (22 loc) 698 B
import { buildArrayConstraints } from "../utils/build-array-constraints.mjs"; import { itemGuard } from "./utils/item-guard.mjs"; function isArray(value, constraints) { if (!Array.isArray(value)) { return false; } const CONSTRAINTS = buildArrayConstraints(constraints); if (CONSTRAINTS === undefined) { return true; } if (CONSTRAINTS.minLength !== undefined && value.length < CONSTRAINTS.minLength) { return false; } if (CONSTRAINTS.itemTest !== undefined) { const GUARD = CONSTRAINTS.itemTest; return value.every((item) => { return itemGuard(item, GUARD); }); } return true; } export { isArray };