diff --git a/packages/request-handler/src/releases-providers.ts b/packages/request-handler/src/releases-providers.ts index 9e30fc8f1..bd413ec07 100644 --- a/packages/request-handler/src/releases-providers.ts +++ b/packages/request-handler/src/releases-providers.ts @@ -80,7 +80,7 @@ export const Providers: ProvidersProps = { return z .object({ html_url: z.string(), - description: z.string(), + description: z.string().nullable(), fork: z.boolean(), archived: z.boolean(), created_at: z.string().transform((value) => new Date(value)), @@ -90,7 +90,7 @@ export const Providers: ProvidersProps = { }) .transform((resp) => ({ projectUrl: resp.html_url, - projectDescription: resp.description, + projectDescription: resp.description ?? undefined, isFork: resp.fork, isArchived: resp.archived, createdAt: resp.created_at, @@ -111,7 +111,7 @@ export const Providers: ProvidersProps = { tag_name: z.string(), published_at: z.string().transform((value) => new Date(value)), html_url: z.string(), - body: z.string(), + body: z.string().nullable(), prerelease: z.boolean(), }) .transform((tag) => ({ @@ -119,7 +119,7 @@ export const Providers: ProvidersProps = { latestRelease: tag.tag_name, latestReleaseAt: tag.published_at, releaseUrl: tag.html_url, - releaseDescription: tag.body, + releaseDescription: tag.body ?? undefined, isPreRelease: tag.prerelease, })), ) @@ -135,17 +135,17 @@ export const Providers: ProvidersProps = { .object({ web_url: z.string(), description: z.string(), - forked_from_project: z.object({ id: z.number() }).nullable(), - archived: z.boolean(), + forked_from_project: z.object({ id: z.number() }).optional(), + archived: z.boolean().optional(), created_at: z.string().transform((value) => new Date(value)), star_count: z.number(), - open_issues_count: z.number(), + open_issues_count: z.number().optional(), forks_count: z.number(), }) .transform((resp) => ({ projectUrl: resp.web_url, projectDescription: resp.description, - isFork: resp.forked_from_project !== null, + isFork: resp.forked_from_project !== undefined, isArchived: resp.archived, createdAt: resp.created_at, starsCount: resp.star_count, diff --git a/packages/request-handler/src/releases.ts b/packages/request-handler/src/releases.ts index bb6ffac22..9c5ec8b3f 100644 --- a/packages/request-handler/src/releases.ts +++ b/packages/request-handler/src/releases.ts @@ -71,7 +71,7 @@ export const releasesRequestHandler = createCachedWidgetRequestHandler({ detailsResult = parsedDetails.data; } else { detailsResult = undefined; - logger.warn("Failed to parse details response", { + logger.warn(`Failed to parse details response for ${input.identifier} on ${input.providerKey}`, { provider: input.providerKey, identifier: input.identifier, detailsUrl, diff --git a/packages/widgets/src/releases/component.tsx b/packages/widgets/src/releases/component.tsx index b8fa38fd3..95111768c 100644 --- a/packages/widgets/src/releases/component.tsx +++ b/packages/widgets/src/releases/component.tsx @@ -253,12 +253,12 @@ const DetailsDisplay = ({ repository, toggleExpandedRepository }: DetailsDisplay - - {repository.starsCount === 0 + + {!repository.starsCount ? "-" - : formatter.number(repository.starsCount ?? 0, { + : formatter.number(repository.starsCount, { notation: "compact", maximumFractionDigits: 1, })} @@ -270,12 +270,12 @@ const DetailsDisplay = ({ repository, toggleExpandedRepository }: DetailsDisplay - - {repository.forksCount === 0 + + {!repository.forksCount ? "-" - : formatter.number(repository.forksCount ?? 0, { + : formatter.number(repository.forksCount, { notation: "compact", maximumFractionDigits: 1, })} @@ -287,12 +287,12 @@ const DetailsDisplay = ({ repository, toggleExpandedRepository }: DetailsDisplay - - {repository.openIssues === 0 + + {!repository.openIssues ? "-" - : formatter.number(repository.openIssues ?? 0, { + : formatter.number(repository.openIssues, { notation: "compact", maximumFractionDigits: 1, })}