From a640ba04bc013229cc1e345b2ecdc62289e43d1c Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Thu, 6 Oct 2022 19:09:57 +0200 Subject: [PATCH] Generate types for all $defs --- cmd/jsonschemagen/main.go | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/cmd/jsonschemagen/main.go b/cmd/jsonschemagen/main.go index 52a8097..b414f37 100644 --- a/cmd/jsonschemagen/main.go +++ b/cmd/jsonschemagen/main.go @@ -98,7 +98,10 @@ func generateSchemaType(schema *jsonschema.Schema, root *jsonschema.Schema) jen. return jen.Interface() } - refName := refName(schema.Ref) + if refName := refName(schema.Ref); refName != "" { + return jen.Id(formatId(refName)) + } + schema = resolveRef(schema, root) switch schemaType(schema) { case jsonschema.TypeNull: @@ -116,11 +119,7 @@ func generateSchemaType(schema *jsonschema.Schema, root *jsonschema.Schema) jen. case jsonschema.TypeObject: noAdditionalProps := schema.AdditionalProperties != nil && schema.AdditionalProperties.IsFalse() 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 { return jen.Map(jen.String()).Add(generateSchemaType(patternProp, root)) } 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) { - 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() }