MCPcopy Create free account
hub / github.com/ascorbic/astro-loaders / transformToLegacyFormat

Function transformToLegacyFormat

packages/feed/src/feed-loader.ts:21–67  ·  view source on GitHub ↗

* Transform modern feed item format to legacy format for backward compatibility

(item: any, feedData: any)

Source from the content-addressed store, hash-verified

19 * Transform modern feed item format to legacy format for backward compatibility
20 */
21function transformToLegacyFormat(item: any, feedData: any): LegacyItem {
22 return {
23 title: item.title,
24 description: item.description,
25 summary: item.description, // Map description to summary as well
26 date: item.published,
27 pubdate: item.published,
28 link: item.url,
29 origlink: null,
30 author: item.authors.length > 0 ?
31 `${item.authors[0]?.email || ''} (${item.authors[0]?.name || ''})` : null,
32 guid: item.id || item.url || "",
33 comments: null,
34 image: item.image ? {
35 url: item.image.url || undefined,
36 title: item.image.title || undefined
37 } : { url: undefined, title: undefined },
38 categories: item.categories.map((cat: any) => cat.label),
39 enclosures: item.media.map((media: any) => ({
40 url: media.url,
41 type: media.mimeType,
42 length: media.length ? String(media.length) : null,
43 })),
44 meta: {
45 "#ns": [{}], // Simplified namespace
46 "#type": feedData.meta.type as "atom" | "rss" | "rdf",
47 "#version": feedData.meta.version,
48 title: feedData.title,
49 description: feedData.description,
50 date: feedData.updated,
51 pubdate: feedData.updated,
52 link: feedData.url,
53 xmlurl: null,
54 author: feedData.authors.length > 0 ?
55 `${feedData.authors[0]?.email || ''} (${feedData.authors[0]?.name || ''})` : null,
56 language: feedData.language,
57 image: feedData.image ? {
58 url: feedData.image.url || undefined,
59 title: feedData.image.title || undefined
60 } : null,
61 favicon: null,
62 copyright: feedData.copyright,
63 generator: feedData.generator?.name || null,
64 categories: feedData.categories.map((cat: any) => cat.label),
65 }
66 };
67}
68
69export function feedLoader({
70 url,

Callers 1

feedLoaderFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected