package jsonschema
import "cuelang.org/go/encoding/jsonschema"
Package jsonschema converts JSON Schema to CUE
JSON Schema data is presented in CUE, so any of the supported encodings that can represent JSON Schema data can be used as a source.
Package jsonschema implements the JSON schema standard.
Mapping and Linking
JSON Schema are often defined in a single file. CUE, on the other hand idiomatically defines schema as a definition.
CUE:
$schema: which schema is used for validation. $id: which validation does this schema provide. Foo: _ @jsonschema(sc) @source(https://...) // What schema is used to validate.
NOTE: JSON Schema is a draft standard and may undergo backwards incompatible changes.
Index ¶
Functions ¶
func Extract ¶
Extract converts JSON Schema data into an equivalent CUE representation.
The generated CUE schema is guaranteed to deem valid any value that is a valid instance of the source JSON schema.
Types ¶
type Config ¶
type Config struct { PkgName string // ID sets the URL of the original source, corresponding to the $id field. ID string // JSON reference of location containing schema. The empty string indicates // that there is a single schema at the root. // // Examples: // "#/" top-level fields are schemas. // "#/components/schemas" the canonical OpenAPI location. Root string // Map maps the locations of schemas and definitions to a new location. // References are updated accordingly. A returned label must be // an identifier or string literal. // // The default mapping is // {} {} // {"definitions", foo} {#foo} or {#, foo} // {"$defs", foo} {#foo} or {#, foo} Map func(pos token.Pos, path []string) ([]ast.Label, error) // Strict reports an error for unsupported features, rather than ignoring // them. Strict bool // contains filtered or unexported fields }
A Config configures a JSON Schema encoding or decoding.
Source Files ¶
constraints.go decode.go doc.go jsonschema.go ref.go
- Version
- v0.7.0-rc.1
- Published
- Dec 4, 2023
- Platform
- linux/amd64
- Imports
- 14 packages
- Last checked
- 16 minutes ago –
Tools for package owners.