abolish
Version:
A javascript object validator.
29 lines (28 loc) • 1.11 kB
JavaScript
;
const functions_1 = require("../../src/functions");
const types_checker_1 = require("../../src/types-checker");
module.exports = {
name: "arrayValuesAsync",
isAsync: true,
error: ":param array values does not match the expected types",
validator: async (arr, rule, { error, abolish, modifier }) => {
(0, types_checker_1.assertType)(arr, "array", `arrayValuesAsync values`);
(0, types_checker_1.assertType)(rule, ["string", "array", "object"]);
if (typeof rule === "string" || Array.isArray(rule)) {
rule = (0, functions_1.Rule)(rule);
}
// loop through the array and check if the values are of the given types
// using abolish
const newArray = [];
for (let i = 0; i < arr.length; i++) {
const [err, validated] = await abolish.checkAsync(arr[i], {
$name: `arrayValues[${i}]`,
...rule
});
if (err)
return error(err.message, err);
newArray.push(validated);
}
modifier.setThis(newArray);
}
};