nitropack
Version:
Build and Deploy Universal JavaScript Servers
32 lines (31 loc) • 851 B
JavaScript
import "#internal/nitro/virtual/polyfill";
import { requestHasBody } from "#internal/nitro/utils";
import { nitroApp } from "#internal/nitro/app";
import { isPublicAssetURL } from "#internal/nitro/virtual/public-assets";
export default {
async fetch(request, env, context) {
const url = new URL(request.url);
if (isPublicAssetURL(url.pathname)) {
return env.ASSETS.fetch(request);
}
let body;
if (requestHasBody(request)) {
body = Buffer.from(await request.arrayBuffer());
}
return nitroApp.localFetch(url.pathname + url.search, {
context: {
cf: request.cf,
cloudflare: {
request,
env,
context
}
},
host: url.hostname,
protocol: url.protocol,
method: request.method,
headers: request.headers,
body
});
}
};