Skip to main content Link Search Menu Expand Document (external link)

JSONSchema overview

Added in v0.67.0


Table of contents


encoding

make

Signature

export declare const make: <A, I, R>(schema: Schema.Schema<A, I, R>) => JsonSchema7Root

Added in v0.67.0

model

JsonSchema7 (type alias)

Signature

export type JsonSchema7 =
  | JsonSchema7Any
  | JsonSchema7Unknown
  | JsonSchema7Void
  | JsonSchema7object
  | JsonSchema7empty
  | JsonSchema7Ref
  | JsonSchema7Const
  | JsonSchema7String
  | JsonSchema7Number
  | JsonSchema7Integer
  | JsonSchema7Boolean
  | JsonSchema7Array
  | JsonSchema7OneOf
  | JsonSchema7Enum
  | JsonSchema7Enums
  | JsonSchema7AnyOf
  | JsonSchema7Object

Added in v0.69.0

JsonSchema7Any (interface)

Signature

export interface JsonSchema7Any extends JsonSchemaAnnotations {
  $id: "/schemas/any"
}

Added in v0.67.0

JsonSchema7AnyOf (interface)

Signature

export interface JsonSchema7AnyOf extends JsonSchemaAnnotations {
  anyOf: Array<JsonSchema7>
}

Added in v0.67.0

JsonSchema7Array (interface)

Signature

export interface JsonSchema7Array extends JsonSchemaAnnotations {
  type: "array"
  items?: JsonSchema7 | Array<JsonSchema7>
  minItems?: number
  maxItems?: number
  additionalItems?: JsonSchema7 | boolean
}

Added in v0.67.0

JsonSchema7Boolean (interface)

Signature

export interface JsonSchema7Boolean extends JsonSchemaAnnotations {
  type: "boolean"
}

Added in v0.67.0

JsonSchema7Const (interface)

Signature

export interface JsonSchema7Const extends JsonSchemaAnnotations {
  const: AST.LiteralValue
}

Added in v0.67.0

JsonSchema7Enum (interface)

Signature

export interface JsonSchema7Enum extends JsonSchemaAnnotations {
  enum: Array<AST.LiteralValue>
}

Added in v0.67.0

JsonSchema7Enums (interface)

Signature

export interface JsonSchema7Enums extends JsonSchemaAnnotations {
  $comment: "/schemas/enums"
  oneOf: Array<{
    title: string
    const: string | number
  }>
}

Added in v0.67.0

JsonSchema7Integer (interface)

Signature

export interface JsonSchema7Integer extends JsonSchema7Numeric {
  type: "integer"
}

Added in v0.67.0

JsonSchema7Number (interface)

Signature

export interface JsonSchema7Number extends JsonSchema7Numeric {
  type: "number"
}

Added in v0.67.0

JsonSchema7Numeric (interface)

Signature

export interface JsonSchema7Numeric extends JsonSchemaAnnotations {
  minimum?: number
  exclusiveMinimum?: number
  maximum?: number
  exclusiveMaximum?: number
}

Added in v0.67.0

JsonSchema7Object (interface)

Signature

export interface JsonSchema7Object extends JsonSchemaAnnotations {
  type: "object"
  required: Array<string>
  properties: Record<string, JsonSchema7>
  additionalProperties?: boolean | JsonSchema7
  patternProperties?: Record<string, JsonSchema7>
  propertyNames?: JsonSchema7
}

Added in v0.67.0

JsonSchema7OneOf (interface)

Signature

export interface JsonSchema7OneOf extends JsonSchemaAnnotations {
  oneOf: Array<JsonSchema7>
}

Added in v0.67.0

JsonSchema7Ref (interface)

Signature

export interface JsonSchema7Ref extends JsonSchemaAnnotations {
  $ref: string
}

Added in v0.67.0

JsonSchema7Root (type alias)

Signature

export type JsonSchema7Root = JsonSchema7 & {
  $schema?: string
  $defs?: Record<string, JsonSchema7>
}

Added in v0.67.0

JsonSchema7String (interface)

Signature

export interface JsonSchema7String extends JsonSchemaAnnotations {
  type: "string"
  minLength?: number
  maxLength?: number
  pattern?: string
}

Added in v0.67.0

JsonSchema7Unknown (interface)

Signature

export interface JsonSchema7Unknown extends JsonSchemaAnnotations {
  $id: "/schemas/unknown"
}

Added in v0.67.0

JsonSchema7Void (interface)

Signature

export interface JsonSchema7Void extends JsonSchemaAnnotations {
  $id: "/schemas/void"
}

Added in v0.69.0

JsonSchema7empty (interface)

Signature

export interface JsonSchema7empty extends JsonSchemaAnnotations {
  $id: "/schemas/{}"
  oneOf: [{ type: "object" }, { type: "array" }]
}

Added in v0.67.0

JsonSchema7object (interface)

Signature

export interface JsonSchema7object extends JsonSchemaAnnotations {
  $id: "/schemas/object"
  oneOf: [{ type: "object" }, { type: "array" }]
}

Added in v0.67.0

JsonSchemaAnnotations (interface)

Signature

export interface JsonSchemaAnnotations {
  title?: string
  description?: string
  default?: unknown
  examples?: Array<unknown>
}

Added in v0.67.0