improve graphql error handling

This commit is contained in:
2024-08-14 22:13:49 +02:00
parent 137a8c0b2f
commit 27477de14e
11 changed files with 175 additions and 61 deletions
+18 -7
View File
@@ -31,11 +31,16 @@ export async function generateStaticParams() {
`);
const { data, error } = await getClient().query(allEventSlugsQuery, {});
if (data === undefined || error) {
throw new Error("failed to generate static params");
if (error) {
throw new Error(error.message);
}
if (!data?.pages) {
throw new Error(
"Failed to generate static params for subpages of /arrangementer"
);
}
return data?.pages.map((page: any) => ({
return data.pages.map((page: any) => ({
slug: page.slug,
}));
}
@@ -47,12 +52,15 @@ export async function generateMetadata(
const { data, error } = await getClient().query(eventBySlugQuery, {
slug: params.slug,
});
const event = (data?.event ?? []) as EventFragment[];
if (!event) {
if (error) {
throw new Error(error.message);
}
if (!data?.event) {
return null;
}
const event = data.event as EventFragment;
const metadata = await getSeoMetadata(event, parent);
return metadata;
}
@@ -62,11 +70,14 @@ export default async function Page({ params }: { params: { slug: string } }) {
slug: params.slug,
});
if (data?.event === null || error) {
if (error) {
throw new Error(error.message);
}
if (!data?.event) {
return notFound();
}
const event = (data?.event ?? {}) as EventFragment;
const event = data.event as EventFragment;
const eventPig = getEventPig(event);
return (