Package: effect
Module: JsonSchema
Converts a Document<"draft-2020-12"> to a Document<"draft-07">.
When to use
Use when you need to output a canonical JSON Schema document in Draft-07 format.
Details
This rewrites #/$defs/... refs to #/definitions/..., converts
Draft-2020-12 tuple syntax (prefixItems plus items) to Draft-07 form
(items as array plus additionalItems), and converts both the root schema
and all definitions.
Gotchas
Unsupported Draft-2020-12 keywords are dropped.
Example (Converting to Draft-07)
import { JsonSchema } from "effect"
const doc = JsonSchema.fromSchemaDraft2020_12({
type: "array",
prefixItems: [{ type: "string" }, { type: "number" }],
items: { type: "boolean" }
})
const draft07 = JsonSchema.toDocumentDraft07(doc)
console.log(draft07.dialect) // "draft-07"
console.log(draft07.schema.items) // [{ type: "string" }, { type: "number" }]
console.log(draft07.schema.additionalItems) // { type: "boolean" }
See
fromSchemaDraft07toMultiDocumentOpenApi3_1Signature
declare const toDocumentDraft07: (document: Document<"draft-2020-12">) => Document<"draft-07">
Since v4.0.0