From 77d0f79944cb45fa49cf799d4d3aadad3192068e Mon Sep 17 00:00:00 2001 From: Conduitry Date: Mon, 29 Aug 2022 14:15:51 -0400 Subject: [PATCH] [fix] remove vestigial JSON server_data (#6382) * remove vestigial JSON serialization of server_data * remove server_data as an allowed payload script attribute * update test * add changeset --- .changeset/quiet-poems-tease.md | 5 +++++ packages/kit/src/runtime/server/page/render.js | 9 --------- packages/kit/src/utils/escape.spec.js | 10 ++++++---- packages/kit/types/internal.d.ts | 1 - 4 files changed, 11 insertions(+), 14 deletions(-) create mode 100644 .changeset/quiet-poems-tease.md diff --git a/.changeset/quiet-poems-tease.md b/.changeset/quiet-poems-tease.md new file mode 100644 index 000000000000..02941511e3f8 --- /dev/null +++ b/.changeset/quiet-poems-tease.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +[fix] remove unnecessary JSON serialization of server data diff --git a/packages/kit/src/runtime/server/page/render.js b/packages/kit/src/runtime/server/page/render.js index 9ed1d1e647a1..19c7e4eb5c26 100644 --- a/packages/kit/src/runtime/server/page/render.js +++ b/packages/kit/src/runtime/server/page/render.js @@ -299,15 +299,6 @@ export async function render_response({ ); } - if (branch.some((node) => node.server_data)) { - serialized_data.push( - render_json_payload_script( - { type: 'server_data' }, - branch.map(({ server_data }) => server_data) - ) - ); - } - if (validation_errors) { serialized_data.push( render_json_payload_script({ type: 'validation_errors' }, validation_errors) diff --git a/packages/kit/src/utils/escape.spec.js b/packages/kit/src/utils/escape.spec.js index 1474ddadfa36..57eef069c288 100644 --- a/packages/kit/src/utils/escape.spec.js +++ b/packages/kit/src/utils/escape.spec.js @@ -5,11 +5,13 @@ import { render_json_payload_script, escape_html_attr } from './escape.js'; const json = suite('render_json_payload_script'); json('escapes slashes', () => { + // The type here doesn't really matter for the purposes of escaping, + // but we want to avoid upsetting TypeScript. assert.equal( - render_json_payload_script({ type: 'server_data' }, [ + render_json_payload_script({ type: 'validation_errors' }, [ { unsafe: '' ); @@ -17,10 +19,10 @@ json('escapes slashes', () => { json('escapes exclamation marks', () => { assert.equal( - render_json_payload_script({ type: 'server_data' }, [ + render_json_payload_script({ type: 'validation_errors' }, [ { 'alert("xss")': 'unsafe' } ]), - '' ); diff --git a/packages/kit/types/internal.d.ts b/packages/kit/types/internal.d.ts index 2543bc14c35f..a5813e4f78e8 100644 --- a/packages/kit/types/internal.d.ts +++ b/packages/kit/types/internal.d.ts @@ -133,7 +133,6 @@ export interface PageNode { export type PayloadScriptAttributes = | { type: 'data'; url: string; body?: string } - | { type: 'server_data' } | { type: 'validation_errors' }; export interface PrerenderDependency {