Skip to content

Commit b24335b

Browse files
committed
encoding/openapi: remove Config.All
It has been deprecated since March 2020, and the presence of OrderedMap in the API is no longer useful and causes us to carry a significant amount of code forward. The legacy code around OrderedMap existed to help transition the Istio project more than four years ago; its use has long expired. Signed-off-by: Daniel Martí <[email protected]> Change-Id: I9c9a0f58f638a42d8c248c22ede941407baef337 Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1201933 TryBot-Result: CUEcueckoo <[email protected]> Reviewed-by: Roger Peppe <[email protected]> Unity-Result: CUE porcuepine <[email protected]>
1 parent 91b12ec commit b24335b

File tree

2 files changed

+10
-32
lines changed

2 files changed

+10
-32
lines changed

encoding/openapi/openapi.go

+9-15
Original file line numberDiff line numberDiff line change
@@ -91,18 +91,25 @@ func Gen(inst cue.InstanceOrValue, c *Config) ([]byte, error) {
9191
if c == nil {
9292
c = defaultConfig
9393
}
94-
all, err := c.All(inst)
94+
all, err := schemas(c, inst)
95+
if err != nil {
96+
return nil, err
97+
}
98+
top, err := c.compose(inst, all)
9599
if err != nil {
96100
return nil, err
97101
}
98-
return internaljson.Marshal(all)
102+
return internaljson.Marshal((*OrderedMap)(top))
99103
}
100104

101105
// Generate generates the set of OpenAPI schema for all top-level types of the
102106
// given instance.
103107
//
104108
// Note: only a limited number of top-level types are supported so far.
105109
func Generate(inst cue.InstanceOrValue, c *Config) (*ast.File, error) {
110+
if c == nil {
111+
c = defaultConfig
112+
}
106113
all, err := schemas(c, inst)
107114
if err != nil {
108115
return nil, err
@@ -114,19 +121,6 @@ func Generate(inst cue.InstanceOrValue, c *Config) (*ast.File, error) {
114121
return &ast.File{Decls: top.Elts}, nil
115122
}
116123

117-
// All generates an OpenAPI definition from the given instance.
118-
//
119-
// Note: only a limited number of top-level types are supported so far.
120-
// Deprecated: use Generate
121-
func (g *Generator) All(inst cue.InstanceOrValue) (*OrderedMap, error) {
122-
all, err := schemas(g, inst)
123-
if err != nil {
124-
return nil, err
125-
}
126-
top, err := g.compose(inst, all)
127-
return (*OrderedMap)(top), err
128-
}
129-
130124
func toCUE(name string, x interface{}) (v ast.Expr, err error) {
131125
b, err := internaljson.Marshal(x)
132126
if err == nil {

encoding/openapi/openapi_test.go

+1-17
Original file line numberDiff line numberDiff line change
@@ -191,11 +191,10 @@ func TestParseDefinitions(t *testing.T) {
191191
if tc.err != "" {
192192
t.Fatal("unexpected success:", tc.err)
193193
} else {
194-
all, err := tc.config.All(inst)
194+
_, err := openapi.Generate(inst, tc.config)
195195
if err != nil {
196196
t.Fatal(err)
197197
}
198-
walk(all)
199198
}
200199

201200
var out = &bytes.Buffer{}
@@ -230,21 +229,6 @@ func TestParseDefinitions(t *testing.T) {
230229
}
231230
}
232231

233-
// walk traverses an openapi.OrderedMap. This is a helper function
234-
// used to ensure that a generated OpenAPI value is well-formed.
235-
func walk(om *openapi.OrderedMap) {
236-
for _, p := range om.Pairs() {
237-
switch p := p.Value.(type) {
238-
case *openapi.OrderedMap:
239-
walk(p)
240-
case []*openapi.OrderedMap:
241-
for _, om := range p {
242-
walk(om)
243-
}
244-
}
245-
}
246-
}
247-
248232
// TODO: move OpenAPI testing to txtar and allow errors.
249233
func TestIssue1234(t *testing.T) {
250234
val := cuecontext.New().CompileString(`

0 commit comments

Comments
 (0)