Skip to content

Commit 214d5e5

Browse files
committed
Filtering: Improved the unused components removal
1 parent cc9453d commit 214d5e5

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

openapi-format.js

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -664,7 +664,7 @@ async function openapiFilter(oaObj, options) {
664664
let isOnlyUsedByUnusedComps = true;
665665

666666
// Check if this component is used in paths (directly used)
667-
traverse(jsonObj.paths || {}).forEach(function(node) {
667+
traverse(jsonObj.paths || {}).forEach(function (node) {
668668
if (this.key === '$ref' && node === `#/components/${compType}/${compKey}`) {
669669
isOnlyUsedByUnusedComps = false;
670670
this.stop();
@@ -681,7 +681,7 @@ async function openapiFilter(oaObj, options) {
681681
for (const otherCompKey of otherUsedComps) {
682682
if (otherCompKey === compKey && otherCompType === compType) continue; // Skip self-reference
683683

684-
traverse(jsonObj.components?.[otherCompType]?.[otherCompKey] || {}).forEach(function(node) {
684+
traverse(jsonObj.components?.[otherCompType]?.[otherCompKey] || {}).forEach(function (node) {
685685
if (this.key === '$ref' && node === `#/components/${compType}/${compKey}`) {
686686
isOnlyUsedByUnusedComps = false;
687687
this.stop();
@@ -706,10 +706,14 @@ async function openapiFilter(oaObj, options) {
706706

707707
// Update options.unusedComp with the newly identified unused components
708708
if (optFs.includes('schemas')) options.unusedComp.schemas = [...options.unusedComp.schemas, ...unusedComp.schemas];
709-
if (optFs.includes('responses')) options.unusedComp.responses = [...options.unusedComp.responses, ...unusedComp.responses];
710-
if (optFs.includes('parameters')) options.unusedComp.parameters = [...options.unusedComp.parameters, ...unusedComp.parameters];
711-
if (optFs.includes('examples')) options.unusedComp.examples = [...options.unusedComp.examples, ...unusedComp.examples];
712-
if (optFs.includes('requestBodies')) options.unusedComp.requestBodies = [...options.unusedComp.requestBodies, ...unusedComp.requestBodies];
709+
if (optFs.includes('responses'))
710+
options.unusedComp.responses = [...options.unusedComp.responses, ...unusedComp.responses];
711+
if (optFs.includes('parameters'))
712+
options.unusedComp.parameters = [...options.unusedComp.parameters, ...unusedComp.parameters];
713+
if (optFs.includes('examples'))
714+
options.unusedComp.examples = [...options.unusedComp.examples, ...unusedComp.examples];
715+
if (optFs.includes('requestBodies'))
716+
options.unusedComp.requestBodies = [...options.unusedComp.requestBodies, ...unusedComp.requestBodies];
713717
if (optFs.includes('headers')) options.unusedComp.headers = [...options.unusedComp.headers, ...unusedComp.headers];
714718

715719
// Update unusedComp.meta.total after each recursion
@@ -774,7 +778,7 @@ async function openapiFilter(oaObj, options) {
774778
if (
775779
Array.isArray(filterSet.preserveEmptyObjects) &&
776780
((!['security', 'schemas', 'default'].includes(this.parent.key) &&
777-
!filterSet.preserveEmptyObjects.includes(this.key)) ||
781+
!filterSet.preserveEmptyObjects.includes(this.key)) ||
778782
!filterSet.preserveEmptyObjects.some(v => this.path.includes(v)))
779783
) {
780784
// debugFilterStep = 'Filter - Remove empty objects'

0 commit comments

Comments
 (0)