diff --git a/lib/bundle.js b/lib/bundle.js index 5cdf636..9ef7cce 100644 --- a/lib/bundle.js +++ b/lib/bundle.js @@ -571,10 +571,10 @@ function generateComponentsObject (documentContext, rootContent, refTypeResolver } else if (isCircularReference(this, contentFromTrace)) { if (refData.inline) { - refData.nodeContent = { [CIRCULAR_Or_REF_EXT_PROP]: property.$ref, [CIRCULAR_REF_EXT_PROP]: true }; + refData.nodeContent = { [CIRCULAR_Or_REF_EXT_PROP]: tempRef, [CIRCULAR_REF_EXT_PROP]: true }; } else { - refData.node = { [CIRCULAR_Or_REF_EXT_PROP]: documentContext.globalReferences[property.$ref].reference, + refData.node = { [CIRCULAR_Or_REF_EXT_PROP]: refData.reference, [CIRCULAR_REF_EXT_PROP]: true }; refData.nodeContent = contentFromTrace; } @@ -589,22 +589,18 @@ function generateComponentsObject (documentContext, rootContent, refTypeResolver refData.node = hasSiblings ? _.merge(referenceSiblings, refData.nodeContent) : refData.nodeContent; - documentContext.globalReferences[property.$ref].reference = + documentContext.globalReferences[tempRef].reference = resolveJsonPointerInlineNodes(this.parents, this.key); } - - this.update(refData.node); - - if (!refData.inline) { - if (documentContext.globalReferences[tempRef].refHasContent) { - setValueInComponents( - refData.keyInComponents, - components, - refData.nodeContent, - COMPONENTS_KEYS - ); - } + else if (refData.refHasContent) { + setValueInComponents( + refData.keyInComponents, + components, + refData.nodeContent, + COMPONENTS_KEYS + ); } + this.update(refData.node); } } });