diff --git a/.changeset/angry-meals-suffer.md b/.changeset/angry-meals-suffer.md new file mode 100644 index 000000000..ae6fff4e5 --- /dev/null +++ b/.changeset/angry-meals-suffer.md @@ -0,0 +1,5 @@ +--- +"@opennextjs/aws": patch +--- + +Basic support for PPR diff --git a/packages/open-next/src/adapters/cache.ts b/packages/open-next/src/adapters/cache.ts index 716c0d926..c0c24aaa9 100644 --- a/packages/open-next/src/adapters/cache.ts +++ b/packages/open-next/src/adapters/cache.ts @@ -237,6 +237,7 @@ export default class S3Cache { rscData: Buffer.from(cacheData.rsc), status: meta?.status, headers: meta?.headers, + postponed: meta?.postponed, }, } as CacheHandlerValue; } diff --git a/packages/open-next/src/build.ts b/packages/open-next/src/build.ts index e879ed792..03a6f6680 100755 --- a/packages/open-next/src/build.ts +++ b/packages/open-next/src/build.ts @@ -523,8 +523,12 @@ async function createCacheAssets(monorepoRoot: string) { () => true, (filepath) => { const ext = path.extname(filepath); - const newFilePath = + let newFilePath = ext !== "" ? filepath.replace(ext, ".cache") : `${filepath}.cache`; + // Handle prefetch cache files for partial prerendering + if (newFilePath.endsWith(".prefetch.cache")) { + newFilePath = newFilePath.replace(".prefetch.cache", ".cache"); + } switch (ext) { case ".meta": case ".html": diff --git a/packages/open-next/src/cache/next-types.ts b/packages/open-next/src/cache/next-types.ts index 58fe95652..da343ac34 100644 --- a/packages/open-next/src/cache/next-types.ts +++ b/packages/open-next/src/cache/next-types.ts @@ -73,4 +73,5 @@ export type Extension = "cache" | "fetch"; export interface Meta { status?: number; headers?: Record; + postponed?: string; }