MCPcopy Create free account
hub / github.com/nodejs/nodejs.org / generateWebsiteFeeds

Function generateWebsiteFeeds

apps/site/util/feeds.ts:26–64  ·  view source on GitHub ↗
({ posts }: BlogPostsRSC)

Source from the content-addressed store, hash-verified

24 * and the current blog data that is available
25 */
26export const generateWebsiteFeeds = ({ posts }: BlogPostsRSC) => {
27 /**
28 * This generates all the Website RSS Feeds that are used for the website
29 */
30 const websiteFeeds: Array<[string, Feed]> = siteConfig.rssFeeds.map(
31 ({ category, title, description, file }) => {
32 const feed = new Feed({
33 id: file,
34 title,
35 language: 'en',
36 link: canonicalUrl,
37 description: description || '',
38 } as FeedOptions);
39
40 const blogFeedEntries = posts
41 .filter(post => post.categories.includes(category))
42 .map(post => {
43 const date = new Date(post.date);
44 const time = date.getTime();
45
46 return {
47 title: post.title,
48 date,
49 link: `${canonicalUrl}${post.slug}`,
50 guid:
51 time > guidTimestampStartDate
52 ? `${post.slug}?${date.getTime()}`
53 : post.slug,
54 };
55 });
56
57 blogFeedEntries.forEach(entry => feed.addItem(entry));
58
59 return [file, feed];
60 }
61 );
62
63 return new Map(websiteFeeds);
64};
65
66export const getFeeds = (feed: string) => {
67 const blogPosts = getBlogPosts('all');

Callers 2

feeds.test.mjsFile · 0.90
getFeedsFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected