"use strict"; const combinator = require("@validatem/combinator"); const validationResult = require("@validatem/validation-result"); const annotateErrors = require("@validatem/annotate-errors"); const isArray = require("@validatem/is-array"); module.exports = function (rules) { return [ isArray, combinator((value, applyValidators) => { let newArray = []; let allErrors = []; value.forEach((item, i) => { let { errors, newValue } = applyValidators(item, rules); let annotatedErrors = annotateErrors({ pathSegments: [ i ], errors: errors }); newArray.push(newValue); allErrors.push(...annotatedErrors); }); return validationResult({ errors: allErrors, newValue: newArray }); }) ]; };