async function handleRequest(request) { const url = new URL(request.url); // Modify the URL to target WordPress.org if (url.pathname.startsWith('/plugins/')) { url.hostname = 'api.wordpress.org'; url.pathname = url.pathname.replace('/plugins/', '/plugins/info/1.2/'); } else if (url.pathname.startsWith('/themes/')) { url.hostname = 'api.wordpress.org'; url.pathname = url.pathname.replace('/themes/', '/themes/info/1.2/'); } else { return new Response('Invalid Request', { status: 400 }); } // Fetch the request from the WordPress API const response = await fetch(url.toString(), { method: request.method, headers: request.headers, }); return response; } addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)); });