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

JSONSchema overview

Added in v1.0.0


Table of contents


encoding

make

Signature

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

Added in v1.0.0

model

JsonSchema7 (type alias)

Signature

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

Added in v1.0.0

JsonSchema7Any (interface)

Signature

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

Added in v1.0.0

JsonSchema7AnyOf (interface)

Signature

export interface JsonSchema7AnyOf {
  anyOf: Array<JsonSchema7>
}

Added in v1.0.0

JsonSchema7Array (interface)

Signature

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

Added in v1.0.0

JsonSchema7Boolean (interface)

Signature

export interface JsonSchema7Boolean {
  type: "boolean"
}

Added in v1.0.0

JsonSchema7Const (interface)

Signature

export interface JsonSchema7Const {
  const: AST.LiteralValue
}

Added in v1.0.0

JsonSchema7Enum (interface)

Signature

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

Added in v1.0.0

JsonSchema7Enums (interface)

Signature

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

Added in v1.0.0

JsonSchema7Integer (interface)

Signature

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

Added in v1.0.0

JsonSchema7Number (interface)

Signature

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

Added in v1.0.0

JsonSchema7Numeric (interface)

Signature

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

Added in v1.0.0

JsonSchema7Object (interface)

Signature

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

Added in v1.0.0

JsonSchema7OneOf (interface)

Signature

export interface JsonSchema7OneOf {
  oneOf: Array<JsonSchema7>
}

Added in v1.0.0

JsonSchema7Ref (interface)

Signature

export interface JsonSchema7Ref {
  $ref: string
}

Added in v1.0.0

JsonSchema7Root (type alias)

Signature

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

Added in v1.0.0

JsonSchema7String (interface)

Signature

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

Added in v1.0.0

JsonSchema7Unknown (interface)

Signature

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

Added in v1.0.0

JsonSchema7empty (interface)

Signature

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

Added in v1.0.0

JsonSchema7object (interface)

Signature

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

Added in v1.0.0