[APP-2160] Extract StandardSiteEmbed type guards into utils.ts

Move isStandardSiteEmbed alongside a new isStandardSitePublicationEmbed
helper. The publication check now requires at least one publication ref
and zero document refs, replacing a tautological condition that also
returned true for empty associatedRefs arrays.
This commit is contained in:
Eric Bailey
2026-05-22 14:23:14 -05:00
parent 726c5b9a2d
commit 785fc26ec4
4 changed files with 26 additions and 19 deletions
@@ -0,0 +1,20 @@
import {type AppBskyEmbedExternal, AtUri} from '@atproto/api'
export function isStandardSiteEmbed(view: AppBskyEmbedExternal.ViewExternal) {
return view.associatedRefs?.some(ref =>
new AtUri(ref.uri).collection.startsWith('site.standard.'),
)
}
export function isStandardSitePublicationEmbed(
view: AppBskyEmbedExternal.ViewExternal,
) {
return (
view.associatedRefs?.some(
ref => new AtUri(ref.uri).collection === 'site.standard.publication',
) &&
view.associatedRefs.every(
ref => new AtUri(ref.uri).collection !== 'site.standard.document',
)
)
}