From bb6f9dd6d5d749cba4bc12cc4a5298e5958a4ac0 Mon Sep 17 00:00:00 2001 From: AirBorne04 <> Date: Tue, 31 Jan 2023 17:16:43 +0100 Subject: [PATCH 1/2] minor fixes for errors related to vercel SSR in core --- .changeset/curvy-owls-grow.md | 6 ++++++ packages/astro/src/runtime/server/render/common.ts | 4 +++- packages/astro/src/runtime/server/render/component.ts | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 .changeset/curvy-owls-grow.md diff --git a/.changeset/curvy-owls-grow.md b/.changeset/curvy-owls-grow.md new file mode 100644 index 000000000000..8a5434f3faa9 --- /dev/null +++ b/.changeset/curvy-owls-grow.md @@ -0,0 +1,6 @@ +--- +'astro': patch +--- + +* safe guard against TextEncode.encode(HTMLString) [errors on vercel edge] +* safe guard against html.replace when html is undefined \ No newline at end of file diff --git a/packages/astro/src/runtime/server/render/common.ts b/packages/astro/src/runtime/server/render/common.ts index 9b1aa1453b44..dbb9a6ec59de 100644 --- a/packages/astro/src/runtime/server/render/common.ts +++ b/packages/astro/src/runtime/server/render/common.ts @@ -93,5 +93,7 @@ export function chunkToByteArray( if (chunk instanceof Uint8Array) { return chunk as Uint8Array; } - return encoder.encode(stringifyChunk(result, chunk)); + // stringify chunk might return a HTMLString + let stringified = stringifyChunk(result, chunk); + return encoder.encode(stringified.toString()); } diff --git a/packages/astro/src/runtime/server/render/component.ts b/packages/astro/src/runtime/server/render/component.ts index b6a6576f17c2..f29d88d2d7ed 100644 --- a/packages/astro/src/runtime/server/render/component.ts +++ b/packages/astro/src/runtime/server/render/component.ts @@ -261,7 +261,7 @@ If you're still stuck, please open an issue on GitHub or join us at https://astr if (isPage || renderer?.name === 'astro:jsx') { yield html; - } else { + } else if (html) { yield markHTMLString(html.replace(/\<\/?astro-slot\>/g, '')); } })(); From e306dede0f24e585bdef11a8af1adbe554970608 Mon Sep 17 00:00:00 2001 From: AirBorne04 <> Date: Wed, 1 Feb 2023 10:58:40 +0100 Subject: [PATCH 2/2] yielding empty string instead of nothing, to not exit the iterator --- packages/astro/src/runtime/server/render/component.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/astro/src/runtime/server/render/component.ts b/packages/astro/src/runtime/server/render/component.ts index f29d88d2d7ed..a2ab2e327887 100644 --- a/packages/astro/src/runtime/server/render/component.ts +++ b/packages/astro/src/runtime/server/render/component.ts @@ -261,9 +261,11 @@ If you're still stuck, please open an issue on GitHub or join us at https://astr if (isPage || renderer?.name === 'astro:jsx') { yield html; - } else if (html) { + } else if(html && html.length > 0) { yield markHTMLString(html.replace(/\<\/?astro-slot\>/g, '')); - } + } else { + yield ''; + } })(); }