From 4a87c35df6eff47c1b9d01d241e98ccb9181905a Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 27 Mar 2024 17:12:57 +0000 Subject: [PATCH] fix(nuxt): handle errors parsing/stringifying logs --- packages/nuxt/src/app/plugins/dev-server-logs.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/app/plugins/dev-server-logs.ts b/packages/nuxt/src/app/plugins/dev-server-logs.ts index 15ee629db4fa..edeb39ae8f0f 100644 --- a/packages/nuxt/src/app/plugins/dev-server-logs.ts +++ b/packages/nuxt/src/app/plugins/dev-server-logs.ts @@ -37,7 +37,11 @@ export default defineNuxtPlugin((nuxtApp) => { nuxtApp.hook('dev:ssr-logs', (logs) => { for (const log of logs) { // deduplicate so we don't print out things that are logged on client - if (!hydrationLogs.size || !hydrationLogs.has(JSON.stringify(log.args))) { + try { + if (!hydrationLogs.size || !hydrationLogs.has(JSON.stringify(log.args))) { + logger.log(normalizeServerLog({ ...log })) + } + } catch { logger.log(normalizeServerLog({ ...log })) } } @@ -50,7 +54,8 @@ export default defineNuxtPlugin((nuxtApp) => { // pass SSR logs after hydration nuxtApp.hooks.hook('app:suspense:resolve', async () => { if (typeof window !== 'undefined') { - const logs = parse(document.getElementById('__NUXT_LOGS__')?.textContent || '[]', nuxtApp._payloadRevivers) as LogObject[] + const content = document.getElementById('__NUXT_LOGS__')?.textContent + const logs = content ? parse(content, nuxtApp._payloadRevivers) as LogObject[] : [] await nuxtApp.hooks.callHook('dev:ssr-logs', logs) } })