datahub/datahub-web-react/functions/cloudflare_proxy.js
2025-03-20 11:25:05 -03:00

27 lines
1002 B
JavaScript

// This runs in the Cloudflare Pages Functions environment.
// It proxies requests along to a backend server, so that we can
// use ephemeral preview environments for frontend changes.
/**
* @type {import('@cloudflare/workers-types').PagesFunction}
*/
export function onRequest(context) {
// These are set in the Cloudflare dashboard.
// https://developers.cloudflare.com/pages/functions/bindings/#environment-variables
const proxyTarget = new URL(context.env.CLOUDFLARE_BACKEND_PROXY_TARGET);
const { request } = context;
const url = new URL(request.url);
url.protocol = proxyTarget.protocol;
url.hostname = proxyTarget.hostname;
url.port = proxyTarget.port;
const newRequest = new Request(url.toString(), {
method: request.method,
headers: request.headers,
body: request.body,
redirect: request.redirect,
credentials: request.credentials
});
console.log("newRequest", newRequest);
return fetch(newRequest);
}