@@ -520,8 +520,9 @@ function handleCircularReference(traverseContext, documentContext) {
520
520
*/
521
521
function generateComponentsObject ( documentContext , rootContent , refTypeResolver , components , version ) {
522
522
let notInLine = Object . entries ( documentContext . globalReferences ) . filter ( ( [ , value ] ) => {
523
- return value . keyInComponents . length !== 0 ;
524
- } ) ;
523
+ return value . keyInComponents . length !== 0 ;
524
+ } ) ,
525
+ circularRefsSet = new Set ( ) ;
525
526
const { COMPONENTS_KEYS } = getBundleRulesDataByVersion ( version ) ;
526
527
notInLine . forEach ( ( [ key , value ] ) => {
527
528
let [ , partial ] = key . split ( localPointer ) ;
@@ -572,10 +573,12 @@ function generateComponentsObject (documentContext, rootContent, refTypeResolver
572
573
else if ( isCircularReference ( this , contentFromTrace ) ) {
573
574
if ( refData . inline ) {
574
575
refData . nodeContent = { [ CIRCULAR_OR_REF_EXT_PROP ] : tempRef } ;
576
+ circularRefsSet . add ( tempRef ) ;
575
577
}
576
578
else {
577
579
refData . node = { [ CIRCULAR_OR_REF_EXT_PROP ] : refData . reference } ;
578
580
refData . nodeContent = contentFromTrace ;
581
+ circularRefsSet . add ( refData . reference ) ;
579
582
}
580
583
}
581
584
else {
@@ -610,7 +613,8 @@ function generateComponentsObject (documentContext, rootContent, refTypeResolver
610
613
} ) ,
611
614
newComponents : traverseUtility ( components ) . map ( function ( ) {
612
615
handleCircularReference ( this , documentContext ) ;
613
- } )
616
+ } ) ,
617
+ circularRefs : [ ...circularRefsSet ]
614
618
} ;
615
619
}
616
620
@@ -645,7 +649,7 @@ function generateComponentsWrapper(parsedOasObject, version, nodesContent = {})
645
649
}
646
650
647
651
/**
648
- * Generates a map of generated refernce to the original reference
652
+ * Generates a map of generated reference to the original reference
649
653
*
650
654
* @param {object } globalReferences - Global references present at each root file context
651
655
* @returns {object } reference map
@@ -739,7 +743,8 @@ module.exports = {
739
743
fileContent : finalElements . resRoot ,
740
744
components : finalElements . newComponents ,
741
745
fileName : specRoot . fileName ,
742
- referenceMap : getReferenceMap ( rootContextData . globalReferences )
746
+ referenceMap : getReferenceMap ( rootContextData . globalReferences ) ,
747
+ circularRefs : finalElements . circularRefs
743
748
} ;
744
749
} ,
745
750
getReferences,
0 commit comments