Skip to content

Commit ddebff9

Browse files
committed
feature(edge): add a way for convertTo to return a Request
1 parent 811bdc0 commit ddebff9

File tree

1 file changed

+11
-2
lines changed
  • packages/open-next/src/overrides/converters

1 file changed

+11
-2
lines changed

packages/open-next/src/overrides/converters/edge.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ import type { Converter, InternalEvent, InternalResult } from "types/open-next";
55

66
import type { MiddlewareOutputEvent } from "../../core/routingHandler";
77

8+
declare global {
9+
// Makes convertTo returns the request instead of fetching it.
10+
var __dangerous_ON_edge_converter_returns_request: boolean | undefined;
11+
}
12+
813
const converter: Converter<
914
InternalEvent,
1015
InternalResult | ({ type: "middleware" } & MiddlewareOutputEvent)
@@ -63,7 +68,7 @@ const converter: Converter<
6368
}
6469
}
6570

66-
const req = new Request(url, {
71+
const request = new Request(url, {
6772
body: result.internalEvent.body,
6873
method: result.internalEvent.method,
6974
headers: {
@@ -72,14 +77,18 @@ const converter: Converter<
7277
},
7378
});
7479

80+
if (globalThis.__dangerous_ON_edge_converter_returns_request === true) {
81+
return request;
82+
}
83+
7584
const cfCache =
7685
(result.isISR ||
7786
result.internalEvent.rawPath.startsWith("/_next/image")) &&
7887
process.env.DISABLE_CACHE !== "true"
7988
? { cacheEverything: true }
8089
: {};
8190

82-
return fetch(req, {
91+
return fetch(request, {
8392
// This is a hack to make sure that the response is cached by Cloudflare
8493
// See https://developers.cloudflare.com/workers/examples/cache-using-fetch/#caching-html-resources
8594
// @ts-expect-error - This is a Cloudflare specific option

0 commit comments

Comments
 (0)