next.js
2f86fbab - [runtime prefetching]: fix runtime prefetching when deployed (#85595)

Commit
53 days ago
[runtime prefetching]: fix runtime prefetching when deployed (#85595) Runtime prefetching relies on the presence of headers to determine caching behavior: `x-nextjs-postponed` indicates if the response was partial (so it knows if it should trigger a dynamic request to retrieve the missing data), and `x-nextjs-stale-time` provided stale time information to the client router. This worked fine in `next start` but due to how this is modeled in our Vercel deployment adapter, it was not possible to set runtime headers after the initial headers have been sent, as these requests were routed to prerenders. As a result of this limitation, this moves both the isPartial flag and the stale time value into the payload body. The response is run through a transform stream that replaces a sentinel value (`"rp": [sentinel]`) with the final stale time/isPartial values after we determine them. This avoids regenerating the entire RSC payload while ensuring correct values are sent to the client. Both properties are only included in runtime prefetch responses. Closes NAR-494 --------- Co-authored-by: Josh Story <story@hey.com>
Author
Parents
Loading