@@ -388,7 +388,6 @@ func (ncp *NginxConfigParser) crossplaneConfigTraverseAPIDetails(
388388 callback crossplaneTraverseCallbackAPIDetails ,
389389 apiType string ,
390390) []* model.APIDetails {
391- stop := false
392391 var responses []* model.APIDetails
393392
394393 for _ , dir := range root .Parsed {
@@ -397,7 +396,7 @@ func (ncp *NginxConfigParser) crossplaneConfigTraverseAPIDetails(
397396 responses = append (responses , response ... )
398397 continue
399398 }
400- response = traverseAPIDetails (ctx , dir , callback , & stop , apiType )
399+ response = traverseAPIDetails (ctx , dir , callback , apiType )
401400 if response != nil {
402401 responses = append (responses , response ... )
403402 }
@@ -410,26 +409,23 @@ func traverseAPIDetails(
410409 ctx context.Context ,
411410 root * crossplane.Directive ,
412411 callback crossplaneTraverseCallbackAPIDetails ,
413- stop * bool ,
414412 apiType string ,
415413) (response []* model.APIDetails ) {
416- if * stop {
417- return nil
418- }
414+ var collectedResponses []* model.APIDetails
419415
420416 for _ , child := range root .Block {
421- response = callback (ctx , root , child , apiType )
422- if len (response ) > 0 {
423- * stop = true
424- return response
417+ currentResponse := callback (ctx , root , child , apiType )
418+ if len (currentResponse ) > 0 {
419+ collectedResponses = append (collectedResponses , currentResponse ... )
425420 }
426- response = traverseAPIDetails (ctx , child , callback , stop , apiType )
427- if * stop {
428- return response
421+
422+ recursiveResponse := traverseAPIDetails (ctx , child , callback , apiType )
423+ if len (recursiveResponse ) > 0 {
424+ collectedResponses = append (collectedResponses , recursiveResponse ... )
429425 }
430426 }
431427
432- return response
428+ return collectedResponses
433429}
434430
435431func (ncp * NginxConfigParser ) formatMap (directive * crossplane.Directive ) map [string ]string {
0 commit comments