MCPcopy Create free account
hub / github.com/dailydotdev/apps / normalizeFeedV2Edge

Function normalizeFeedV2Edge

packages/shared/src/graphql/feed.ts:158–201  ·  view source on GitHub ↗
(
  edge: Connection<FeedV2Item>['edges'][number],
)

Source from the content-addressed store, hash-verified

156});
157
158const normalizeFeedV2Edge = (
159 edge: Connection<FeedV2Item>['edges'][number],
160): Connection<FeedApiItem>['edges'][number] | null => {
161 const { node } = edge;
162
163 if (isFeedV2PostItem(node)) {
164 if (!node.post) {
165 throw new Error('feedV2 post item is missing post');
166 }
167
168 const feedMeta = node.feedMeta ?? node.post.feedMeta ?? null;
169
170 return {
171 ...edge,
172 node: {
173 itemType: 'post',
174 feedMeta,
175 post: {
176 ...node.post,
177 ...(feedMeta ? { feedMeta } : {}),
178 },
179 },
180 };
181 }
182
183 if (isFeedV2HighlightsItem(node)) {
184 if (!node.highlights?.length) {
185 return null;
186 }
187
188 return {
189 ...edge,
190 node: {
191 itemType: 'highlight',
192 feedMeta: node.feedMeta ?? null,
193 highlights: node.highlights,
194 },
195 };
196 }
197
198 warnUnsupportedFeedItem(getGraphqlTypename(node) ?? 'unknown');
199
200 return null;
201};
202
203export const normalizeFeedPage = (
204 data: FeedData | FeedItemData | FeedV2Data,

Callers 1

normalizeFeedPageFunction · 0.85

Calls 4

isFeedV2PostItemFunction · 0.85
isFeedV2HighlightsItemFunction · 0.85
warnUnsupportedFeedItemFunction · 0.85
getGraphqlTypenameFunction · 0.85

Tested by

no test coverage detected