Skip to content

Commit 93ee891

Browse files
authored
Fix bugs in transformlink
1 parent 422abf1 commit 93ee891

1 file changed

Lines changed: 43 additions & 13 deletions

File tree

src/lib/utils/api.ts

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

126126
async transformLink(link: any, type: string | undefined): Promise<any> {
127-
// 1. SAFETY CHECK: Ignore completely empty links
127+
// Undefined type --> this is a primitive value
128+
// Just return the string directly!
129+
if (!type) return link;
130+
131+
// Now we know it's supposed to be a Link (Asset or Entry).
132+
// Ignore completely empty/broken links.
128133
if (!link || !link.sys) return undefined;
129134

130135
switch (type) {
@@ -135,28 +140,53 @@ export class ContentWrapper {
135140
return { src: `https:${link.fields.file.url}`, alt: link.fields.title };
136141

137142
case "Entry":
138-
// 2. SAFETY CHECK: If the entry is unpublished/unresolved, skip it
143+
// SAFETY CHECK: If the entry is unpublished/unresolved, skip it
139144
if (!link.sys.contentType) return undefined;
140145

141146
return await this.serialize(
142147
link,
143148
await this.client.getContentType(link.sys.contentType.sys.id)
144149
);
145-
146-
case "Array":
147-
const transformedArray = await Promise.all(
148-
res[id].map((link: any) =>
149-
this.transformLink(link, field.items!.linkType)
150-
)
151-
);
152-
// Filter out any undefined items that were unpublished
153-
res[id] = transformedArray.filter((item) => item !== undefined);
154-
break;
155150

156-
case undefined:
151+
default:
157152
return link;
158153
}
159154

155+
// WEBSITE FIX ATTEMPT 1
156+
// Ignore completely empty links
157+
// if (!link || !link.sys) return undefined;
158+
159+
// switch (type) {
160+
// case "Asset":
161+
// if (link.src !== undefined) return link;
162+
// // Safety check for deleted/unpublished assets
163+
// if (!link.fields || !link.fields.file) return undefined;
164+
// return { src: `https:${link.fields.file.url}`, alt: link.fields.title };
165+
166+
// case "Entry":
167+
// // 2. SAFETY CHECK: If the entry is unpublished/unresolved, skip it
168+
// if (!link.sys.contentType) return undefined;
169+
170+
// return await this.serialize(
171+
// link,
172+
// await this.client.getContentType(link.sys.contentType.sys.id)
173+
// );
174+
175+
// case "Array":
176+
// const transformedArray = await Promise.all(
177+
// res[id].map((link: any) =>
178+
// this.transformLink(link, field.items!.linkType)
179+
// )
180+
// );
181+
// // Filter out any undefined items that were unpublished
182+
// res[id] = transformedArray.filter((item) => item !== undefined);
183+
// break;
184+
185+
// case undefined:
186+
// return link;
187+
// }
188+
189+
// ORIGINAL
160190
// switch (type) {
161191
// case "Asset":
162192
// return link.src !== undefined // why do I need to do this?

0 commit comments

Comments
 (0)