Skip to content

Commit f7b6a09

Browse files
Update schemas.go
1 parent a60097c commit f7b6a09

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed

tools/cli/internal/openapi/filter/schemas.go

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,26 +36,29 @@ func (f *SchemasFilter) Apply() error {
3636
return nil
3737
}
3838

39-
schemasToDelete := make([]string, 0)
40-
oasSpecAsBytes, err := f.oas.MarshalJSON()
39+
oasPathsSpecAsBytes, err := f.oas.Paths.MarshalJSON()
4140
if err != nil {
4241
return err
4342
}
43+
spec := string(oasPathsSpecAsBytes)
44+
for {
45+
schemasToDelete := make([]string, 0)
46+
for k := range f.oas.Components.Schemas {
47+
ref := "#/components/schemas/" + k
48+
if !strings.Contains(spec, ref) {
49+
schemasToDelete = append(schemasToDelete, k)
50+
}
51+
}
4452

45-
spec := string(oasSpecAsBytes)
46-
for k := range f.oas.Components.Schemas {
47-
ref := "#/components/schemas/" + k
48-
if !strings.Contains(spec, ref) {
49-
schemasToDelete = append(schemasToDelete, k)
53+
if len(schemasToDelete) == 0 {
54+
return nil
5055
}
51-
}
5256

53-
for _, schemaToDelete := range schemasToDelete {
54-
log.Printf("Deleting unused schema: '%s'", schemaToDelete)
55-
maps.DeleteFunc(f.oas.Components.Schemas, func(k string, _ *openapi3.SchemaRef) bool {
56-
return k == schemaToDelete
57-
})
57+
for _, schemaToDelete := range schemasToDelete {
58+
log.Printf("Deleting unused schema: '%s'", schemaToDelete)
59+
maps.DeleteFunc(f.oas.Components.Schemas, func(k string, _ *openapi3.SchemaRef) bool {
60+
return k == schemaToDelete
61+
})
62+
}
5863
}
59-
60-
return nil
6164
}

0 commit comments

Comments
 (0)