The JSON Schema node type (inferred from as const).
Whether this node represents a required (true) or
optional (false) value in its parent context. Defaults to true.
import { fromJsonSchema } from '@cleverbrush/schema-json';
import type { JsonSchemaNodeToBuilder } from '@cleverbrush/schema-json';
const S = {
type: 'object',
properties: {
name: { type: 'string' },
score: { type: 'number' },
},
required: ['name'],
} as const;
type Builder = JsonSchemaNodeToBuilder<typeof S>;
// ObjectSchemaBuilder<
// { name: ExtendedStringBuilder<string, true> } &
// { score: ExtendedNumberBuilder<number, false> }
// >
const schema = fromJsonSchema(S);
// TypeScript knows schema is ObjectSchemaBuilder<...>
// with full intellisense on .parse(), .addProp(), etc.
Recursively maps a statically-known JSON Schema node (passed with
as const) to the exact@cleverbrush/schemabuilder type, including:StringSchemaBuilder,NumberSchemaBuilder,BooleanSchemaBuilderfor primitive types andconstliteralsArraySchemaBuilder<ElementBuilder>with the element builder inferred fromitemsObjectSchemaBuilder<PropertyDescriptors>where each property is a typed builder withTRequired = true/falsedriven by therequiredarrayUnionSchemaBuilder<[...Builders]>forenumandanyOf