Skip to content

Commit a983201

Browse files
authored
Add safety checks at the top of transformLink() so it gracefully skips missing data
1 parent d199c37 commit a983201

1 file changed

Lines changed: 26 additions & 3 deletions

File tree

src/lib/utils/api.ts

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,13 +124,20 @@ export class ContentWrapper {
124124
}
125125

126126
async transformLink(link: any, type: string | undefined): Promise<any> {
127+
// 1. SAFETY CHECK: Ignore completely empty links
128+
if (!link || !link.sys) return undefined;
129+
127130
switch (type) {
128131
case "Asset":
129-
return link.src !== undefined // why do I need to do this?
130-
? link
131-
: { src: `https:${link.fields.file.url}`, alt: link.fields.title };
132+
if (link.src !== undefined) return link;
133+
// Safety check for deleted/unpublished assets
134+
if (!link.fields || !link.fields.file) return undefined;
135+
return { src: `https:${link.fields.file.url}`, alt: link.fields.title };
132136

133137
case "Entry":
138+
// 2. SAFETY CHECK: If the entry is unpublished/unresolved, skip it
139+
if (!link.sys.contentType) return undefined;
140+
134141
return await this.serialize(
135142
link,
136143
await this.client.getContentType(link.sys.contentType.sys.id)
@@ -139,5 +146,21 @@ export class ContentWrapper {
139146
case undefined:
140147
return link;
141148
}
149+
150+
// switch (type) {
151+
// case "Asset":
152+
// return link.src !== undefined // why do I need to do this?
153+
// ? link
154+
// : { src: `https:${link.fields.file.url}`, alt: link.fields.title };
155+
156+
// case "Entry":
157+
// return await this.serialize(
158+
// link,
159+
// await this.client.getContentType(link.sys.contentType.sys.id)
160+
// );
161+
162+
// case undefined:
163+
// return link;
164+
// }
142165
}
143166
}

0 commit comments

Comments
 (0)