export default defineEventHandler(async (event) => { const query = getQuery(event); const imageUrl = query.url as string; if (!imageUrl) { throw createError({ statusCode: 400, statusMessage: 'URL parameter is required' }); } try { const response = await fetch(imageUrl, { headers: { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36' } }); if (!response.ok) { throw createError({ statusCode: response.status, statusMessage: 'Failed to fetch image' }); } const imageBuffer = await response.arrayBuffer(); const contentType = response.headers.get('content-type') || 'image/jpeg'; // Set CORS headers setHeader(event, 'Access-Control-Allow-Origin', '*'); setHeader(event, 'Access-Control-Allow-Methods', 'GET'); setHeader(event, 'Content-Type', contentType); setHeader(event, 'Cache-Control', 'public, max-age=86400'); return new Uint8Array(imageBuffer); } catch (error) { console.error('Proxy error:', error); throw createError({ statusCode: 500, statusMessage: 'Failed to proxy image' }); } });