export const GET = async ({ url }) => { let status = ''; switch (url.searchParams.get('status')) { case 'FINISHED': { status = 'completed'; } break; case 'RELEASING': { status = 'ongoing'; } break; case 'HIATUS': { status = 'hiatus'; } break; case 'CANCELLED': { status = 'cancelled'; } break; } const nullIfNullString = (s: string | null) => (s == 'null' ? null : s); const get = async (title: string) => { return await ( await fetch( `https://api.mangadex.org/manga?title=${encodeURIComponent( title )}&year=${url.searchParams.get('year')}&status[]=${status}` ) ).json(); }; let mangadexData = await get( nullIfNullString(url.searchParams.get('native')) || nullIfNullString(url.searchParams.get('english')) || nullIfNullString(url.searchParams.get('romaji')) || '' ); if (mangadexData['data'] === undefined || mangadexData['data'].length === 0) { mangadexData = await get(nullIfNullString(url.searchParams.get('english')) || ''); if (mangadexData['data'] === undefined || mangadexData['data'].length === 0) { mangadexData = await get(nullIfNullString(url.searchParams.get('romaji')) || ''); } } return Response.json(mangadexData); };