UNPKG

json-schema-library

Version:

Customizable and hackable json-validator and json-schema utilities for traversal, data generation and validation

27 lines (24 loc) 854 B
import { isObject } from "../utils/isObject"; import { Keyword, JsonSchemaValidatorParams } from "../Keyword"; export const maxPropertiesKeyword: Keyword = { id: "maxProperties", keyword: "maxProperties", addValidate: ({ schema }) => !isNaN(schema.maxProperties), validate: validateMaxProperties }; function validateMaxProperties({ node, data, pointer = "#" }: JsonSchemaValidatorParams) { if (!isObject(data)) { return; } const { schema } = node; const propertyCount = Object.keys(data).length; if (isNaN(schema.maxProperties) === false && schema.maxProperties < propertyCount) { return node.createError("max-properties-error", { maxProperties: schema.maxProperties, length: propertyCount, pointer, schema, value: data }); } }