From 9ec79c9737a1763c36cab3df3628c77c96f7536a Mon Sep 17 00:00:00 2001 From: albertojuanL Date: Sat, 4 Feb 2023 14:13:24 +0100 Subject: [PATCH] Use title instead of name when it exists, to sort the list of entities by default Signed-off-by: albertojuanL --- packages/catalog-client/src/CatalogClient.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/catalog-client/src/CatalogClient.ts b/packages/catalog-client/src/CatalogClient.ts index af4262b842..a110cfacc7 100644 --- a/packages/catalog-client/src/CatalogClient.ts +++ b/packages/catalog-client/src/CatalogClient.ts @@ -20,6 +20,7 @@ import { parseEntityRef, stringifyEntityRef, stringifyLocationRef, + DEFAULT_NAMESPACE, } from '@backstage/catalog-model'; import { ResponseError } from '@backstage/errors'; import crossFetch from 'cross-fetch'; @@ -176,8 +177,8 @@ export class CatalogClient implements CatalogApi { return 0; } - const aRef = stringifyEntityRef(a); - const bRef = stringifyEntityRef(b); + const aRef = this.stringifySortingEntityRef(a); + const bRef = this.stringifySortingEntityRef(b); if (aRef < bRef) { return -1; } @@ -504,4 +505,14 @@ export class CatalogClient implements CatalogApi { return await response.json(); } + + private stringifySortingEntityRef(ref: Entity): string { + const kind = ref.kind; + const namespace = ref.metadata.namespace ?? DEFAULT_NAMESPACE; + const name = ref.metadata.title || ref.metadata.name; + + return `${kind.toLocaleLowerCase('en-US')}:${namespace.toLocaleLowerCase( + 'en-US', + )}/${name.toLocaleLowerCase('en-US')}`; + } }