Skip to Content
@jetio/schema-builder docs are live 🎉
API ReferenceObjectSchemaBuilder

ObjectSchemaBuilder

Provides the universal and metadata methods ($id, title, description, enum, const, anyOf, allOf, oneOf, not, if, errorMessage, extend, build, …) plus the object-specific constraints below. Per type locking, only this type’s constraints are accessible once the builder is locked to object.

MethodParametersReturnsDescription
.properties(props)Record<string, BuilderSchema> or Record<string, (b: SchemaBuilder) => SchemaBuilder>SchemaBuilderDefine property schemas
.patternProperties(patterns)Record<string, BuilderSchema> or Record<string, (b: SchemaBuilder) => SchemaBuilder>SchemaBuilderDefine pattern-matched property schemas
.additionalProperties(schema)BuilderSchema or (b: SchemaBuilder) => SchemaBuilderSchemaBuilderSchema for additional properties
.unevaluatedProperties(schema)BuilderSchema or (b: SchemaBuilder) => SchemaBuilderSchemaBuilderSchema for unevaluated properties (Draft 2019-09+)
.propertyNames(schema)BuilderSchema or (b: SchemaBuilder) => SchemaBuilderSchemaBuilderSchema for property names
.required(fields)string[] or $dataSchemaBuilderRequired property names
.minProperties(n)number or $dataSchemaBuilderMinimum property count
.maxProperties(n)number or $dataSchemaBuilderMaximum property count
.dependentRequired(deps)Record<string, string[]>SchemaBuilderConditional required fields
.dependentSchemas(deps)Record<string, BuilderSchema> or Record<string, (b: SchemaBuilder) => SchemaBuilder>SchemaBuilderConditional schemas (Draft 2019-09+)
.dependencies(deps)Record<string, BuilderSchema | string[]> or Record<string, (b: SchemaBuilder) => SchemaBuilder | string[]>SchemaBuilderCombined dependencies (Draft 07)
.remove(properties, targets?)string[], ("properties" | "required" | "patternProperties" | "dependencies" | "dependentRequired")[]?SchemaBuilderRemove properties from schema
.optional()—SchemaBuilderRemove all required constraints
Last updated on