unfurlCard: fix types

This commit is contained in:
Alex Gleason 2024-04-08 11:38:59 -05:00
parent 57b0224517
commit 9bfed222da
No known key found for this signature in database
GPG Key ID: 7211D1F99744FBB7
1 changed files with 14 additions and 12 deletions

View File

@ -28,25 +28,27 @@ async function unfurlCard(url: string, signal: AbortSignal): Promise<PreviewCard
fetch: (url) => fetchWorker(url, { signal }), fetch: (url) => fetchWorker(url, { signal }),
}); });
const { oEmbed, title, description, canonical_url, open_graph } = result;
return { return {
type: result.oEmbed?.type || 'link', type: oEmbed?.type || 'link',
url: result.canonical_url || url, url: canonical_url || url,
title: result.oEmbed?.title || result.title || '', title: oEmbed?.title || title || '',
description: result.open_graph?.description || result.description || '', description: open_graph?.description || description || '',
author_name: result.oEmbed?.author_name || '', author_name: oEmbed?.author_name || '',
author_url: result.oEmbed?.author_url || '', author_url: oEmbed?.author_url || '',
provider_name: result.oEmbed?.provider_name || '', provider_name: oEmbed?.provider_name || '',
provider_url: result.oEmbed?.provider_url || '', provider_url: oEmbed?.provider_url || '',
// @ts-expect-error `html` does in fact exist on oEmbed. // @ts-expect-error `html` does in fact exist on oEmbed.
html: sanitizeHtml(result.oEmbed?.html || '', { html: sanitizeHtml(oEmbed?.html || '', {
allowedTags: ['iframe'], allowedTags: ['iframe'],
allowedAttributes: { allowedAttributes: {
iframe: ['width', 'height', 'src', 'frameborder', 'allowfullscreen'], iframe: ['width', 'height', 'src', 'frameborder', 'allowfullscreen'],
}, },
}), }),
width: result.oEmbed?.width || 0, width: ((oEmbed && oEmbed.type !== 'link') ? oEmbed.width : 0) || 0,
height: result.oEmbed?.height || 0, height: ((oEmbed && oEmbed.type !== 'link') ? oEmbed.height : 0) || 0,
image: result.oEmbed?.thumbnails?.[0].url || result.open_graph?.images?.[0].url || null, image: oEmbed?.thumbnails?.[0].url || open_graph?.images?.[0].url || null,
embed_url: '', embed_url: '',
blurhash: null, blurhash: null,
}; };