From ee17977a3e27a5bebfe80a1c1a5264fdbd012909 Mon Sep 17 00:00:00 2001 From: Eric Date: Fri, 7 Jun 2024 13:39:32 +0800 Subject: [PATCH] feat(elements): show tags description if exist --- packages/elements/src/components/API/utils.ts | 4 ++-- .../src/utils/oas/__tests__/oas.spec.ts | 20 +++++++++++++++++++ packages/elements/src/utils/oas/index.ts | 1 + packages/elements/src/utils/oas/types.ts | 1 + 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/packages/elements/src/components/API/utils.ts b/packages/elements/src/components/API/utils.ts index 8213f235e8..616dd8119e 100644 --- a/packages/elements/src/components/API/utils.ts +++ b/packages/elements/src/components/API/utils.ts @@ -31,9 +31,9 @@ export function computeTagGroups(serviceNode: ServiceNo groupsByTagId[tagId].items.push(node); } else { const serviceTagIndex = lowerCaseServiceTags.findIndex(tn => tn === tagId); - const serviceTagName = serviceNode.tags[serviceTagIndex]; + const serviceTag = serviceNode.tagsRaw?.[serviceTagIndex]; groupsByTagId[tagId] = { - title: serviceTagName || tagName, + title: serviceTag?.description || serviceTag?.name || tagName, items: [node], }; } diff --git a/packages/elements/src/utils/oas/__tests__/oas.spec.ts b/packages/elements/src/utils/oas/__tests__/oas.spec.ts index 8657286327..f2dde02bd7 100644 --- a/packages/elements/src/utils/oas/__tests__/oas.spec.ts +++ b/packages/elements/src/utils/oas/__tests__/oas.spec.ts @@ -94,6 +94,16 @@ describe('computeOasNodes', () => { infoExtensions: {}, }, tags: ['operation-tag', 'model-tag'], + tagsRaw: [ + { + id: '68c460dd9e97a', + name: 'operation-tag', + }, + { + id: 'feec8b579ae6b', + name: 'model-tag', + }, + ], children: [ { type: 'http_operation', @@ -171,6 +181,16 @@ describe('computeOasNodes', () => { version: '1.0.0', }, tags: ['operation-tag', 'model-tag'], + tagsRaw: [ + { + id: '68c460dd9e97a', + name: 'operation-tag', + }, + { + id: 'feec8b579ae6b', + name: 'model-tag', + }, + ], children: [ { type: 'http_operation', diff --git a/packages/elements/src/utils/oas/index.ts b/packages/elements/src/utils/oas/index.ts index 4fb9214bb5..e7e13bb098 100644 --- a/packages/elements/src/utils/oas/index.ts +++ b/packages/elements/src/utils/oas/index.ts @@ -71,6 +71,7 @@ function computeServiceNode( name: serviceDocument.name, data: serviceDocument, tags: serviceDocument.tags?.map(tag => tag.name) || [], + tagsRaw: serviceDocument.tags, children: computeChildNodes(document, document, map, transformOperation), }; diff --git a/packages/elements/src/utils/oas/types.ts b/packages/elements/src/utils/oas/types.ts index 8d22cc5467..3a8a1802ef 100644 --- a/packages/elements/src/utils/oas/types.ts +++ b/packages/elements/src/utils/oas/types.ts @@ -25,6 +25,7 @@ type Node = { name: string; data: D; tags: string[]; + tagsRaw?: { name?: string; description?: string }[]; }; export type ServiceNode = Node & { children: ServiceChildNode[] };