@@ -27,28 +27,38 @@ func (c *JsonSchemaConverter) Convert(s *Schema) *schema.Schema {
2727 }
2828
2929 js := & schema.Schema {
30- Type : s .Type ,
31- Schema : s .Schema ,
32- Enum : s .Enum ,
33- Const : s .Const ,
34- Default : s .Default ,
35- MinLength : s .MinLength ,
36- MaxLength : s .MaxLength ,
37- Pattern : s .Pattern ,
38- Format : s .Format ,
39- MultipleOf : s .MultipleOf ,
40- Items : c .ConvertToJsonRef (s .Items ),
41- MinItems : s .MinItems ,
42- MaxItems : s .MaxItems ,
43- UniqueItems : s .UniqueItems ,
44- ShuffleItems : s .ShuffleItems ,
45- MaxProperties : s .MaxProperties ,
46- MinProperties : s .MinProperties ,
47- Required : s .Required ,
48- DependentRequired : nil ,
49- Title : s .Title ,
50- Description : s .Description ,
51- Deprecated : s .Deprecated ,
30+ Type : s .Type ,
31+ Schema : s .Schema ,
32+ Enum : s .Enum ,
33+ Const : s .Const ,
34+ Default : s .Default ,
35+ MinLength : s .MinLength ,
36+ MaxLength : s .MaxLength ,
37+ Pattern : s .Pattern ,
38+ Format : s .Format ,
39+ MultipleOf : s .MultipleOf ,
40+ Items : c .ConvertToJsonRef (s .Items ),
41+ UnevaluatedItems : c .ConvertToJsonRef (s .UnevaluatedItems ),
42+ Contains : c .ConvertToJsonRef (s .Contains ),
43+ MaxContains : s .MaxContains ,
44+ MinContains : s .MinContains ,
45+ MinItems : s .MinItems ,
46+ MaxItems : s .MaxItems ,
47+ UniqueItems : s .UniqueItems ,
48+ ShuffleItems : s .ShuffleItems ,
49+ MaxProperties : s .MaxProperties ,
50+ MinProperties : s .MinProperties ,
51+ Required : s .Required ,
52+ DependentRequired : s .DependentRequired ,
53+ UnevaluatedProperties : c .ConvertToJsonRef (s .UnevaluatedProperties ),
54+ PropertyNames : c .ConvertToJsonRef (s .PropertyNames ),
55+ Not : c .ConvertToJsonRef (s .Not ),
56+ If : c .ConvertToJsonRef (s .If ),
57+ Then : c .ConvertToJsonRef (s .Then ),
58+ Else : c .ConvertToJsonRef (s .Else ),
59+ Title : s .Title ,
60+ Description : s .Description ,
61+ Deprecated : s .Deprecated ,
5262 }
5363 c .history [s ] = js
5464
@@ -58,6 +68,10 @@ func (c *JsonSchemaConverter) Convert(s *Schema) *schema.Schema {
5868 js .Maximum = s .Maximum
5969 js .ExclusiveMaximum = s .ExclusiveMaximum
6070
71+ for _ , ref := range s .PrefixItems {
72+ js .PrefixItems = append (js .PrefixItems , c .ConvertToJsonRef (ref ))
73+ }
74+
6175 if s .Properties != nil {
6276 js .Properties = & schema.Schemas {}
6377 for it := s .Properties .Iter (); it .Next (); {
@@ -70,6 +84,20 @@ func (c *JsonSchemaConverter) Convert(s *Schema) *schema.Schema {
7084 }
7185 }
7286
87+ for k , ref := range s .PatternProperties {
88+ if js .PatternProperties == nil {
89+ js .PatternProperties = map [string ]* schema.Ref {}
90+ }
91+ js .PatternProperties [k ] = c .ConvertToJsonRef (ref )
92+ }
93+
94+ for k , ref := range s .DependentSchemas {
95+ if js .DependentSchemas == nil {
96+ js .DependentSchemas = map [string ]* schema.Ref {}
97+ }
98+ js .DependentSchemas [k ] = c .ConvertToJsonRef (ref )
99+ }
100+
73101 if s .AdditionalProperties != nil {
74102 js .AdditionalProperties = c .ConvertToJsonRef (s .AdditionalProperties )
75103 }
0 commit comments