UNPKG

@atcute/bluesky

Version:

Bluesky (app.bsky.* and chat.bsky.*) schema definitions

96 lines 2.87 kB
/** * extracts raw media embed from a post record embed * @param embed the embed interface to extract from * @returns the extracted raw media embed, if any */ export const unwrapRawMediaEmbed = (embed) => { switch (embed?.$type) { case 'app.bsky.embed.recordWithMedia': return embed.media; case 'app.bsky.embed.record': return; } return embed; }; /** * extracts raw record embed from a post record embed * @param embed the embed interface to extract from * @returns the extracted raw record embed, if any */ export const unwrapRawRecordEmbed = (embed) => { switch (embed?.$type) { case 'app.bsky.embed.recordWithMedia': return embed.record; case 'app.bsky.embed.record': return embed; } }; /** * extracts raw media and record embeds from a post record embed * @param embed the embed interface to extract from * @returns the extracted raw media and record embeds, if any */ export const unwrapRawEmbed = (embed) => { return { media: unwrapRawMediaEmbed(embed), record: unwrapRawRecordEmbed(embed), }; }; /** * extracts media embed from a post embed * @param embed the embed interface to extract from * @returns the extracted media embed, if any */ export const unwrapMediaEmbed = (embed) => { switch (embed?.$type) { case 'app.bsky.embed.recordWithMedia#view': return embed.media; case 'app.bsky.embed.record#view': return; } return embed; }; /** * extracts record embed from a post embed * @param embed the embed interface to extract from * @returns the extracted record embed, if any */ export const unwrapRecordEmbed = (embed) => { switch (embed?.$type) { case 'app.bsky.embed.recordWithMedia#view': return embed.record.record; case 'app.bsky.embed.record#view': return embed.record; } }; /** * extracts media and record embeds from a post embed * @param embed the embed interface to extract from * @returns the extracted media and record embeds, if any */ export const unwrapEmbed = (embed) => { return { media: unwrapMediaEmbed(embed), record: unwrapRecordEmbed(embed), }; }; /** * get quote embed from a record embed * @param embed the record embed to extract from * @returns the extracted quote embed, if any */ export const unwrapQuoteEmbed = (embed) => { switch (embed?.$type) { case 'app.bsky.embed.record#viewRecord': { return embed; } case 'app.bsky.embed.record#viewBlocked': case 'app.bsky.embed.record#viewDetached': case 'app.bsky.embed.record#viewNotFound': { if (embed.uri.includes('/app.bsky.feed.post/')) { return embed; } } } }; //# sourceMappingURL=embeds.js.map