@vitruvius-labs/ts-predicate
Version:
TypeScript predicates library
23 lines (22 loc) • 698 B
JavaScript
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 };