From 6207b7143d199e3a6ed441c82de330ac40e97265 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 25 Oct 2024 11:27:04 +0100 Subject: [PATCH] refactor: use native bluesky type narrowing --- modules/runtime/server/_social/bluesky.get.ts | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/modules/runtime/server/_social/bluesky.get.ts b/modules/runtime/server/_social/bluesky.get.ts index 98952a4a..c15bf3e2 100644 --- a/modules/runtime/server/_social/bluesky.get.ts +++ b/modules/runtime/server/_social/bluesky.get.ts @@ -1,5 +1,4 @@ -import type { AppBskyFeedPost, AppBskyEmbedImages } from '@atproto/api' -import { AtpAgent } from '@atproto/api' +import { AppBskyEmbedImages, AppBskyFeedPost, AtpAgent } from '@atproto/api' import MagicString from 'magic-string' export default defineLazyEventHandler(async () => { @@ -15,17 +14,10 @@ export default defineLazyEventHandler(async () => { const posts = await agent.getAuthorFeed({ actor: identifier }) return Promise.all( posts.data.feed - .filter( - p => - '$type' in p.post.record - && p.post.record.$type === 'app.bsky.feed.post' - && p.post.author.handle === identifier - && p.post.embed?.$type !== 'app.bsky.embed.record#view' - && !p.reply, - ) + .filter(p => AppBskyFeedPost.isRecord(p.post.record) && p.post.author.handle === identifier && !p.reply && (!p.post.embed || AppBskyEmbedImages.isMain(p.post.embed))) .map(p => { const post = p.post.record as AppBskyFeedPost.Record - const embed = p.post.embed as AppBskyEmbedImages.Main | undefined + const embed = AppBskyEmbedImages.isMain(p.post.embed) ? p.post.embed : undefined const text = new MagicString(post.text) for (const facet of post.facets || []) { const startIndex = [...post.text].findIndex( -- 2.51.2