diff --git a/.changeset/lucky-actors-flash.md b/.changeset/lucky-actors-flash.md new file mode 100644 index 000000000..b49d7b5c0 --- /dev/null +++ b/.changeset/lucky-actors-flash.md @@ -0,0 +1,8 @@ +--- +"@opennextjs/aws": patch +--- + +fix(cloudflare): PPR in wrangler dev + +PPR works fine when deployed but not in dev because of bug in miniflare. +Adding a workaround until the bug is fixed upstream. diff --git a/packages/open-next/src/overrides/wrappers/cloudflare-node.ts b/packages/open-next/src/overrides/wrappers/cloudflare-node.ts index d00227f4e..973467cb7 100644 --- a/packages/open-next/src/overrides/wrappers/cloudflare-node.ts +++ b/packages/open-next/src/overrides/wrappers/cloudflare-node.ts @@ -53,6 +53,12 @@ const handler: WrapperHandler = responseHeaders.append("Set-Cookie", cookie); } + // TODO(vicb): this is a workaround to make PPR work with `wrangler dev` + // See https://github.com/cloudflare/workers-sdk/issues/8004 + if (url.hostname === "localhost") { + responseHeaders.set("Content-Encoding", "identity"); + } + const { readable, writable } = new TransformStream({ transform(chunk, controller) { controller.enqueue(Uint8Array.from(chunk.chunk ?? chunk));