Generate types for all $defs
This commit is contained in:
parent
0b18cdd7be
commit
a640ba04bc
1 changed files with 5 additions and 16 deletions
|
@ -98,7 +98,10 @@ func generateSchemaType(schema *jsonschema.Schema, root *jsonschema.Schema) jen.
|
||||||
return jen.Interface()
|
return jen.Interface()
|
||||||
}
|
}
|
||||||
|
|
||||||
refName := refName(schema.Ref)
|
if refName := refName(schema.Ref); refName != "" {
|
||||||
|
return jen.Id(formatId(refName))
|
||||||
|
}
|
||||||
|
|
||||||
schema = resolveRef(schema, root)
|
schema = resolveRef(schema, root)
|
||||||
switch schemaType(schema) {
|
switch schemaType(schema) {
|
||||||
case jsonschema.TypeNull:
|
case jsonschema.TypeNull:
|
||||||
|
@ -116,11 +119,7 @@ func generateSchemaType(schema *jsonschema.Schema, root *jsonschema.Schema) jen.
|
||||||
case jsonschema.TypeObject:
|
case jsonschema.TypeObject:
|
||||||
noAdditionalProps := schema.AdditionalProperties != nil && schema.AdditionalProperties.IsFalse()
|
noAdditionalProps := schema.AdditionalProperties != nil && schema.AdditionalProperties.IsFalse()
|
||||||
if noAdditionalProps && len(schema.PatternProperties) == 0 {
|
if noAdditionalProps && len(schema.PatternProperties) == 0 {
|
||||||
if refName != "" {
|
|
||||||
return jen.Id(formatId(refName))
|
|
||||||
} else {
|
|
||||||
return generateStruct(schema, root)
|
return generateStruct(schema, root)
|
||||||
}
|
|
||||||
} else if patternProp := singlePatternProp(schema); noAdditionalProps && patternProp != nil {
|
} else if patternProp := singlePatternProp(schema); noAdditionalProps && patternProp != nil {
|
||||||
return jen.Map(jen.String()).Add(generateSchemaType(patternProp, root))
|
return jen.Map(jen.String()).Add(generateSchemaType(patternProp, root))
|
||||||
} else {
|
} else {
|
||||||
|
@ -132,16 +131,6 @@ func generateSchemaType(schema *jsonschema.Schema, root *jsonschema.Schema) jen.
|
||||||
}
|
}
|
||||||
|
|
||||||
func generateDef(def *jsonschema.Schema, root *jsonschema.Schema, f *jen.File, name string) {
|
func generateDef(def *jsonschema.Schema, root *jsonschema.Schema, f *jen.File, name string) {
|
||||||
if schemaType(def) != jsonschema.TypeObject {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if def.AdditionalProperties == nil || !def.AdditionalProperties.IsFalse() {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if len(def.PatternProperties) > 0 {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
f.Type().Id(formatId(name)).Add(generateSchemaType(def, root)).Line()
|
f.Type().Id(formatId(name)).Add(generateSchemaType(def, root)).Line()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue