UNPKG

json-schema-library

Version:

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

22 lines (21 loc) 764 B
import { isSchemaNode } from "./schemaNode"; import { resolveDynamicSchema } from "./resolveDynamicSchema"; const toOmit = ["allOf", "anyOf", "oneOf", "dependencies", "if", "then", "else"]; /** * reduces json schema by merging dynamic constructs like if-then-else, * dependencies, allOf, anyOf, oneOf, etc into a static json schema * omitting those properties. * * @returns input schema reduced by dynamic schema definitions for the given * input data */ export function reduceSchema(node, data) { const resolvedSchema = resolveDynamicSchema(node, data); if (isSchemaNode(resolvedSchema)) { return node.merge(resolvedSchema.schema, ...toOmit); } if (resolvedSchema) { return resolvedSchema; // error } return node; }