From c4a6a0a6f83f17369563131a866c611bf28750b3 Mon Sep 17 00:00:00 2001 From: James Date: Sun, 2 Feb 2025 17:41:56 +0000 Subject: [PATCH 1/5] fix: enable using the `direct` queue for isr --- .changeset/slimy-houses-punch.md | 5 +++++ examples/e2e/app-router/app/api/isr/route.ts | 16 +++++++++++++--- examples/e2e/app-router/app/page.tsx | 2 +- .../e2e/app-router/e2e/isr.revalidate.test.ts | 3 +-- examples/e2e/app-router/e2e/isr.test.ts | 6 ++---- examples/e2e/app-router/open-next.config.ts | 3 ++- examples/e2e/shared/components/Nav/index.tsx | 9 +++++++-- examples/next-partial-prerendering/package.json | 1 + .../src/cli/build/utils/ensure-cf-config.ts | 7 ++++--- 9 files changed, 36 insertions(+), 16 deletions(-) create mode 100644 .changeset/slimy-houses-punch.md diff --git a/.changeset/slimy-houses-punch.md b/.changeset/slimy-houses-punch.md new file mode 100644 index 00000000..737a6aaa --- /dev/null +++ b/.changeset/slimy-houses-punch.md @@ -0,0 +1,5 @@ +--- +"@opennextjs/cloudflare": patch +--- + +fix: enable using the `direct` queue for isr diff --git a/examples/e2e/app-router/app/api/isr/route.ts b/examples/e2e/app-router/app/api/isr/route.ts index 1fc3e43d..3a6b728e 100644 --- a/examples/e2e/app-router/app/api/isr/route.ts +++ b/examples/e2e/app-router/app/api/isr/route.ts @@ -8,11 +8,21 @@ export const dynamic = "force-dynamic"; // This endpoint simulates an on demand revalidation request export async function GET(request: NextRequest) { const cwd = process.cwd(); - const prerenderManifest = await fs.readFile(path.join(cwd, ".next/prerender-manifest.json"), "utf-8"); - const manifest = JSON.parse(prerenderManifest); + + let manifest; + // this fails at build time when next.js tries to evaluate the route + try { + // @ts-expect-error + const prerenderManifest = await import(/* webpackIgnore: true */ "./.next/prerender-manifest.json"); + manifest = prerenderManifest.default; + } catch { + return new Response(null, { status: 500 }); + } + const previewId = manifest.preview.previewModeId; - const result = await fetch(`https://${request.headers.get("host")}/isr`, { + const host = request.headers.get("host"); + const result = await fetch(`http${host?.includes("localhost") ? "" : "s"}://${host}/isr`, { headers: { "x-prerender-revalidate": previewId }, method: "HEAD", }); diff --git a/examples/e2e/app-router/app/page.tsx b/examples/e2e/app-router/app/page.tsx index 7480a490..c7f3d9a2 100644 --- a/examples/e2e/app-router/app/page.tsx +++ b/examples/e2e/app-router/app/page.tsx @@ -22,7 +22,7 @@ export default function Home() { -