( edge: Connection<FeedV2Item>['edges'][number], )
| 156 | }); |
| 157 | |
| 158 | const 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 | |
| 203 | export const normalizeFeedPage = ( |
| 204 | data: FeedData | FeedItemData | FeedV2Data, |
no test coverage detected