@@ -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