fix: resolve backend docker build errors
This commit is contained in:
@@ -16,6 +16,13 @@ interface DownloadResult {
|
||||
contentType: string;
|
||||
}
|
||||
|
||||
function getOgImageUrl(ogImage: unknown): string | undefined {
|
||||
const entry = Array.isArray(ogImage) ? ogImage[0] : ogImage;
|
||||
if (!entry || typeof entry !== 'object') return undefined;
|
||||
const { url } = entry as { url?: unknown };
|
||||
return typeof url === 'string' ? url : undefined;
|
||||
}
|
||||
|
||||
async function downloadImage(url: string): Promise<DownloadResult | null> {
|
||||
try {
|
||||
const controller = new AbortController();
|
||||
@@ -27,7 +34,7 @@ async function downloadImage(url: string): Promise<DownloadResult | null> {
|
||||
headers: { 'user-agent': 'FamilyWishlistBot/1.0 (+image-fetch)' },
|
||||
});
|
||||
if (res.statusCode >= 400) return null;
|
||||
const contentType = (res.headers['content-type']?.toString() ?? '').split(';')[0].trim();
|
||||
const contentType = ((res.headers['content-type']?.toString() ?? '').split(';')[0] ?? '').trim();
|
||||
if (!ALLOWED_MIME.has(contentType)) return null;
|
||||
const chunks: Buffer[] = [];
|
||||
let total = 0;
|
||||
@@ -60,8 +67,7 @@ export async function fetchOgImageForWish(
|
||||
try {
|
||||
const parsed = await ogs({ url: pageUrl, timeout: FETCH_TIMEOUT_MS });
|
||||
if (parsed.error || !parsed.result) return;
|
||||
const imageEntry = parsed.result.ogImage;
|
||||
const imageUrl = Array.isArray(imageEntry) ? imageEntry[0]?.url : imageEntry?.url;
|
||||
const imageUrl = getOgImageUrl(parsed.result.ogImage);
|
||||
if (!imageUrl) return;
|
||||
|
||||
const absolute = new URL(imageUrl, pageUrl).toString();
|
||||
|
||||
Reference in New Issue
Block a user