Documentation
¶
Index ¶
- func ValidateJSON(schemaJSON string, payloadJSON string) (bool, []string, error)
- type InputEnvelope
- type JSONSchema
- type JSONSchemaBuilder
- func (b *JSONSchemaBuilder) AddBoolean(name string) *JSONSchemaPropertyBuilder
- func (b *JSONSchemaBuilder) AddInteger(name string) *JSONSchemaPropertyBuilder
- func (b *JSONSchemaBuilder) AddNumber(name string) *JSONSchemaPropertyBuilder
- func (b *JSONSchemaBuilder) AddString(name string) *JSONSchemaPropertyBuilder
- func (b *JSONSchemaBuilder) Build() (*JSONSchema, error)
- func (b *JSONSchemaBuilder) BuildJSON() (string, error)
- func (b *JSONSchemaBuilder) Error() error
- func (b *JSONSchemaBuilder) Title(title string) *JSONSchemaBuilder
- func (b *JSONSchemaBuilder) UIOrder(order ...string) *JSONSchemaBuilder
- type JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) AddBoolean(name string) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) AddInteger(name string) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) AddNumber(name string) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) AddString(name string) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) Build() (*JSONSchema, error)
- func (pb *JSONSchemaPropertyBuilder) BuildJSON() (string, error)
- func (pb *JSONSchemaPropertyBuilder) Default(val interface{}) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) Enum(options ...string) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) Error() error
- func (pb *JSONSchemaPropertyBuilder) Format(format string) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) Label(label string) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) MaxLength(max int) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) Maximum(max float64) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) MinLength(min int) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) Minimum(min float64) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) Pattern(regex string) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) Required() *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) Title(title string) *JSONSchemaBuilder
- func (pb *JSONSchemaPropertyBuilder) UIOrder(order ...string) *JSONSchemaBuilder
- func (pb *JSONSchemaPropertyBuilder) UIWidget(widget string) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) XStep(step int) *JSONSchemaPropertyBuilder
- type OutputEnvelope
- type UIWidgetSpec
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type InputEnvelope ¶
type InputEnvelope struct {
Action string `json:"action"`
Schema string `json:"schema"`
Data string `json:"data,omitempty"`
Variables string `json:"variables,omitempty"`
}
InputEnvelope defines the JSON envelope sent to standard input of the WASM binary.
type JSONSchema ¶
type JSONSchema struct {
Type string `json:"type"`
Title string `json:"title,omitempty"`
Properties map[string]*JSONSchema `json:"properties,omitempty"`
Required []string `json:"required,omitempty"`
Enum []string `json:"enum,omitempty"`
Default interface{} `json:"default,omitempty"`
MinLength *int `json:"minLength,omitempty"`
MaxLength *int `json:"maxLength,omitempty"`
Minimum *float64 `json:"minimum,omitempty"`
Maximum *float64 `json:"maximum,omitempty"`
Pattern string `json:"pattern,omitempty"`
Format string `json:"format,omitempty"`
UIOrder []string `json:"ui:order,omitempty"`
UIWidget string `json:"ui:widget,omitempty"`
XStep int `json:"x-step,omitempty"`
}
type JSONSchemaBuilder ¶
type JSONSchemaBuilder struct {
// contains filtered or unexported fields
}
JSONSchemaBuilder builds JSONSchema structs fluently with sticky error tracking.
func NewBuilder ¶
func NewBuilder() *JSONSchemaBuilder
func (*JSONSchemaBuilder) AddBoolean ¶
func (b *JSONSchemaBuilder) AddBoolean(name string) *JSONSchemaPropertyBuilder
func (*JSONSchemaBuilder) AddInteger ¶
func (b *JSONSchemaBuilder) AddInteger(name string) *JSONSchemaPropertyBuilder
func (*JSONSchemaBuilder) AddNumber ¶
func (b *JSONSchemaBuilder) AddNumber(name string) *JSONSchemaPropertyBuilder
func (*JSONSchemaBuilder) AddString ¶
func (b *JSONSchemaBuilder) AddString(name string) *JSONSchemaPropertyBuilder
func (*JSONSchemaBuilder) Build ¶
func (b *JSONSchemaBuilder) Build() (*JSONSchema, error)
func (*JSONSchemaBuilder) BuildJSON ¶
func (b *JSONSchemaBuilder) BuildJSON() (string, error)
func (*JSONSchemaBuilder) Error ¶
func (b *JSONSchemaBuilder) Error() error
func (*JSONSchemaBuilder) Title ¶
func (b *JSONSchemaBuilder) Title(title string) *JSONSchemaBuilder
func (*JSONSchemaBuilder) UIOrder ¶
func (b *JSONSchemaBuilder) UIOrder(order ...string) *JSONSchemaBuilder
type JSONSchemaPropertyBuilder ¶
type JSONSchemaPropertyBuilder struct {
// contains filtered or unexported fields
}
JSONSchemaPropertyBuilder configures property validation constraints and settings.
func (*JSONSchemaPropertyBuilder) AddBoolean ¶
func (pb *JSONSchemaPropertyBuilder) AddBoolean(name string) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) AddInteger ¶
func (pb *JSONSchemaPropertyBuilder) AddInteger(name string) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) AddNumber ¶
func (pb *JSONSchemaPropertyBuilder) AddNumber(name string) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) AddString ¶
func (pb *JSONSchemaPropertyBuilder) AddString(name string) *JSONSchemaPropertyBuilder
Chain methods back to the main builder to add more properties.
func (*JSONSchemaPropertyBuilder) Build ¶
func (pb *JSONSchemaPropertyBuilder) Build() (*JSONSchema, error)
func (*JSONSchemaPropertyBuilder) BuildJSON ¶
func (pb *JSONSchemaPropertyBuilder) BuildJSON() (string, error)
func (*JSONSchemaPropertyBuilder) Default ¶
func (pb *JSONSchemaPropertyBuilder) Default(val interface{}) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) Enum ¶
func (pb *JSONSchemaPropertyBuilder) Enum(options ...string) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) Error ¶
func (pb *JSONSchemaPropertyBuilder) Error() error
func (*JSONSchemaPropertyBuilder) Format ¶
func (pb *JSONSchemaPropertyBuilder) Format(format string) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) Label ¶
func (pb *JSONSchemaPropertyBuilder) Label(label string) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) MaxLength ¶
func (pb *JSONSchemaPropertyBuilder) MaxLength(max int) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) Maximum ¶
func (pb *JSONSchemaPropertyBuilder) Maximum(max float64) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) MinLength ¶
func (pb *JSONSchemaPropertyBuilder) MinLength(min int) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) Minimum ¶
func (pb *JSONSchemaPropertyBuilder) Minimum(min float64) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) Pattern ¶
func (pb *JSONSchemaPropertyBuilder) Pattern(regex string) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) Required ¶
func (pb *JSONSchemaPropertyBuilder) Required() *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) Title ¶
func (pb *JSONSchemaPropertyBuilder) Title(title string) *JSONSchemaBuilder
func (*JSONSchemaPropertyBuilder) UIOrder ¶
func (pb *JSONSchemaPropertyBuilder) UIOrder(order ...string) *JSONSchemaBuilder
func (*JSONSchemaPropertyBuilder) UIWidget ¶
func (pb *JSONSchemaPropertyBuilder) UIWidget(widget string) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) XStep ¶
func (pb *JSONSchemaPropertyBuilder) XStep(step int) *JSONSchemaPropertyBuilder
type OutputEnvelope ¶
type OutputEnvelope struct {
Valid *bool `json:"valid,omitempty"`
Errors []string `json:"errors,omitempty"`
Widgets []*UIWidgetSpec `json:"widgets,omitempty"`
}
OutputEnvelope defines the JSON envelope received from standard output of the WASM binary.
type UIWidgetSpec ¶
type UIWidgetSpec struct {
Name string `json:"name"`
Label string `json:"label"`
Type string `json:"type"`
Widget string `json:"widget"`
Required bool `json:"required"`
Value interface{} `json:"value"`
Options []string `json:"options"`
MinLength *int `json:"minLength,omitempty"`
MaxLength *int `json:"maxLength,omitempty"`
Minimum *float64 `json:"minimum,omitempty"`
Maximum *float64 `json:"maximum,omitempty"`
Pattern string `json:"pattern,omitempty"`
Format string `json:"format,omitempty"`
XStep int `json:"xStep,omitempty"`
}
func ParseSchema ¶
func ParseSchema(schemaJSON string, variables map[string]interface{}) ([]*UIWidgetSpec, error)
ParseSchema parses a raw JSON Schema string and compiles it into an ordered list of UIWidgetSpecs. If variables map is provided, the current values are injected into the widget specs.
Click to show internal directories.
Click to hide internal directories.