abolish
Version:
A javascript object validator.
24 lines (23 loc) • 1 kB
JavaScript
;
const functions_1 = require("../../src/functions");
const types_checker_1 = require("../../src/types-checker");
module.exports = {
name: "objectValuesAsync",
error: ":param object values does not match the expected types",
isAsync: true,
validator: async (obj, rule, { error, abolish }) => {
(0, types_checker_1.assertType)(obj, "object", `[objectValuesAsync] value`);
(0, types_checker_1.assertType)(rule, ["string", "array", "object"], `[objectValuesAsync] rule`);
if (typeof rule === "string" || Array.isArray(rule)) {
rule = (0, functions_1.Rule)(rule);
}
// loop through the object and check if the values are of the given types
// using abolish
for (let key in obj) {
const result = await abolish.checkAsync(obj[key], rule);
if (result[0])
return error(result[0].message, result[0]).setCode(`key|${key}`);
obj[key] = result[1];
}
}
};