Aggregate requests
Send two GET request to two urls and aggregates the responses into one response.
export default {  async fetch(request) {    /**     * someHost is set up to return JSON responses     * Replace url1 and url2 with the hosts you wish to send requests to     * @param {string} url the URL to send the request to     */    const someHost = "https://examples.cloudflareworkers.com/demos";    const url1 = someHost + "/requests/json";    const url2 = someHost + "/requests/json";    const type = "application/json;charset=UTF-8";
    /**     * gatherResponse awaits and returns a response body as a string.     * Use await gatherResponse(..) in an async function to get the response body     * @param {Response} response     */    async function gatherResponse(response) {      const { headers } = response;      const contentType = headers.get("content-type") || "";      if (contentType.includes("application/json")) {        return JSON.stringify(await response.json());      } else if (contentType.includes("application/text")) {        return response.text();      } else if (contentType.includes("text/html")) {        return response.text();      } else {        return response.text();      }    }
    const init = {      headers: {        "content-type": type,      },    };
    const responses = await Promise.all([fetch(url1, init), fetch(url2, init)]);    const results = await Promise.all([      gatherResponse(responses[0]),      gatherResponse(responses[1]),    ]);    return new Response(results.join(), init);  },
};
const handler: ExportedHandler = {  async fetch(request: Request) {    /**     * someHost is set up to return JSON responses     * Replace url1 and url2 with the hosts you wish to send requests to     * @param {string} url the URL to send the request to     */    const someHost = "https://examples.cloudflareworkers.com/demos";    const url1 = someHost + "/requests/json";    const url2 = someHost + "/requests/json";    const type = "application/json;charset=UTF-8";
    /**     * gatherResponse awaits and returns a response body as a string.     * Use await gatherResponse(..) in an async function to get the response body     * @param {Response} response     */    async function gatherResponse(response) {      const { headers } = response;      const contentType = headers.get("content-type") || "";      if (contentType.includes("application/json")) {        return JSON.stringify(await response.json());      } else if (contentType.includes("application/text")) {        return response.text();      } else if (contentType.includes("text/html")) {        return response.text();      } else {        return response.text();      }    }
    const init = {      headers: {        "content-type": type,      },    };
    const responses = await Promise.all([fetch(url1, init), fetch(url2, init)]);    const results = await Promise.all([      gatherResponse(responses[0]),      gatherResponse(responses[1]),    ]);    return new Response(results.join(), init);  },
};
export default handler;