From f16ae77e14b7b51b70736318df5c7da7c73a4aea Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 17 Oct 2022 10:01:41 +0100 Subject: [PATCH 1/3] refactor(nuxt): use h3 early hints util --- packages/nuxt/src/core/runtime/nitro/renderer.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 505b08f64f0..8b1948e62ce 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -1,7 +1,7 @@ import { createRenderer, renderResourceHeaders } from 'vue-bundle-renderer/runtime' import type { RenderResponse } from 'nitropack' import type { Manifest } from 'vite' -import { appendHeader, getQuery } from 'h3' +import { appendHeader, getQuery, writeEarlyHints } from 'h3' import devalue from '@nuxt/devalue' import { joinURL } from 'ufo' import { renderToString as _renderToString } from 'vue/server-renderer' @@ -160,7 +160,7 @@ export default defineRenderHandler(async (event) => { if (!isRenderingPayload && !process.env.prerender && event.res.socket) { const { link } = renderResourceHeaders({}, renderer.rendererContext) // TODO: use https://github.com/nodejs/node/pull/44180 when we drop support for node 16 - event.res.socket!.write(`HTTP/1.1 103 Early Hints\r\nLink: ${link}\r\n\r\n`, 'utf-8') + writeEarlyHints(event, link) } const _rendered = await renderer.renderToString(ssrContext).catch((err) => { From 01750d69bd32420b92672723817874070fd2466e Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 17 Oct 2022 10:02:50 +0100 Subject: [PATCH 2/3] fix: remove comment --- packages/nuxt/src/core/runtime/nitro/renderer.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 8b1948e62ce..61eecf988f1 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -159,7 +159,6 @@ export default defineRenderHandler(async (event) => { // Render 103 Early Hints if (!isRenderingPayload && !process.env.prerender && event.res.socket) { const { link } = renderResourceHeaders({}, renderer.rendererContext) - // TODO: use https://github.com/nodejs/node/pull/44180 when we drop support for node 16 writeEarlyHints(event, link) } From 92228e24e38dff4b7f8cbeeb5135829f7de8a7ee Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 17 Oct 2022 10:06:40 +0100 Subject: [PATCH 3/3] fix: remove check Co-authored-by: pooya parsa --- packages/nuxt/src/core/runtime/nitro/renderer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 61eecf988f1..6afc5648b2c 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -157,7 +157,7 @@ export default defineRenderHandler(async (event) => { const renderer = (process.env.NUXT_NO_SSR || ssrContext.noSSR) ? await getSPARenderer() : await getSSRRenderer() // Render 103 Early Hints - if (!isRenderingPayload && !process.env.prerender && event.res.socket) { + if (!isRenderingPayload && !process.env.prerender) { const { link } = renderResourceHeaders({}, renderer.rendererContext) writeEarlyHints(event, link) }