diff --git a/.changeset/tidy-ties-guess.md b/.changeset/tidy-ties-guess.md new file mode 100644 index 0000000000..63247c3819 --- /dev/null +++ b/.changeset/tidy-ties-guess.md @@ -0,0 +1,5 @@ +--- +'@backstage/catalog-client': patch +--- + +Ensure that `getEntitiesByRefs` returns `undefined` instead of `null` for missing items diff --git a/packages/catalog-client/src/CatalogClient.test.ts b/packages/catalog-client/src/CatalogClient.test.ts index c235ff1592..53bb55b95f 100644 --- a/packages/catalog-client/src/CatalogClient.test.ts +++ b/packages/catalog-client/src/CatalogClient.test.ts @@ -249,7 +249,7 @@ describe('CatalogClient', () => { { token }, ); - expect(response).toEqual({ items: [entity, null] }); + expect(response).toEqual({ items: [entity, undefined] }); }); }); diff --git a/packages/catalog-client/src/CatalogClient.ts b/packages/catalog-client/src/CatalogClient.ts index 4984d394d4..be4ae6289d 100644 --- a/packages/catalog-client/src/CatalogClient.ts +++ b/packages/catalog-client/src/CatalogClient.ts @@ -199,9 +199,11 @@ export class CatalogClient implements CatalogApi { throw await ResponseError.fromResponse(response); } - const { items } = await response.json(); + const { items } = (await response.json()) as { + items: Array; + }; - return { items }; + return { items: items.map(i => i ?? undefined) }; } /**