json-schema-library
Version:
Customizable and hackable json-validator and json-schema utilities for traversal, data generation and validation
26 lines (25 loc) • 748 B
JavaScript
import { isObject } from "../utils/isObject";
import { hasProperty } from "../utils/hasProperty";
export const requiredKeyword = {
id: "required",
keyword: "required",
addValidate: ({ schema }) => Array.isArray(schema.required),
validate: validateRequired
};
function validateRequired({ node, data, pointer = "#" }) {
const { schema } = node;
if (!isObject(data)) {
return undefined;
}
return schema.required.map((property) => {
if (!hasProperty(data, property)) {
return node.createError("required-property-error", {
key: property,
pointer,
schema,
value: data
});
}
return undefined;
});
}