From b3d5c9836ed71041940fa4ab4827f1c15008ee74 Mon Sep 17 00:00:00 2001 From: Saeid Zareie Date: Mon, 27 Jan 2025 13:18:30 +0330 Subject: [PATCH] feat: adding dev support for payload extraction --- packages/nuxt/src/app/plugins/payload.client.ts | 6 ++---- packages/nuxt/src/core/nuxt.ts | 4 ++-- packages/nuxt/src/core/runtime/nitro/renderer.ts | 4 +++- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/nuxt/src/app/plugins/payload.client.ts b/packages/nuxt/src/app/plugins/payload.client.ts index 48486c1a3e..793effc1b7 100644 --- a/packages/nuxt/src/app/plugins/payload.client.ts +++ b/packages/nuxt/src/app/plugins/payload.client.ts @@ -9,12 +9,10 @@ import { appManifest as isAppManifestEnabled } from '#build/nuxt.config.mjs' export default defineNuxtPlugin({ name: 'nuxt:payload', setup (nuxtApp) { - // TODO: Support dev - if (import.meta.dev) { return } - // Load payload after middleware & once final route is resolved useRouter().beforeResolve(async (to, from) => { - if (to.path === from.path) { return } + // Forcefully load payload in dev mode, to support payload extraction at page refresh. + if (to.path === from.path && !import.meta.dev) { return } const payload = await loadPayload(to.path) if (!payload) { return } Object.assign(nuxtApp.static.data, payload.data) diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts index e3d7f1bdfb..3c8f9551b4 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -591,7 +591,7 @@ async function initNuxt (nuxt: Nuxt) { } // Add prerender payload support - if (!nuxt.options.dev && nuxt.options.experimental.payloadExtraction) { + if (nuxt.options.experimental.payloadExtraction) { addPlugin(resolve(nuxt.options.appDir, 'plugins/payload.client')) } @@ -711,7 +711,7 @@ export default defineNuxtPlugin({ nitro.options.replace['process.env.NUXT_PAYLOAD_EXTRACTION'] = String(!!nuxt.options.experimental.payloadExtraction) nitro.options._config.replace!['process.env.NUXT_PAYLOAD_EXTRACTION'] = String(!!nuxt.options.experimental.payloadExtraction) - if (!nuxt.options.dev && nuxt.options.experimental.payloadExtraction) { + if (nuxt.options.experimental.payloadExtraction) { addPlugin(resolve(nuxt.options.appDir, 'plugins/payload.client')) } diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 7be579a7b3..c4d66ef342 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -325,7 +325,9 @@ export default defineRenderHandler(async (event): Promise