Skip to content

Commit ff8dff9

Browse files
authored
fix: improve ssr template code generation (#10151)
* fix: improve ssr template code generation * lint
1 parent e2fc04d commit ff8dff9

File tree

3 files changed

+12
-5
lines changed

3 files changed

+12
-5
lines changed

.changeset/breezy-carrots-flash.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'svelte': patch
3+
---
4+
5+
fix: improve ssr template code generation

packages/svelte/src/compiler/phases/3-transform/server/transform-server.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -187,10 +187,12 @@ function process_children(nodes, parent, { visit, state }) {
187187
const node = sequence[i];
188188
if (node.type === 'Text' || node.type === 'Comment') {
189189
let last = /** @type {import('estree').TemplateElement} */ (quasis.at(-1));
190-
last.value.raw +=
191-
node.type === 'Comment'
192-
? `<!--${node.data}-->`
193-
: sanitize_template_string(escape_html(node.data));
190+
last.value.raw += node.type === 'Comment' ? `<!--${node.data}-->` : escape_html(node.data);
191+
} else if (node.type === 'ExpressionTag' && node.expression.type === 'Literal') {
192+
let last = /** @type {import('estree').TemplateElement} */ (quasis.at(-1));
193+
if (node.expression.value != null) {
194+
last.value.raw += escape_html(node.expression.value + '');
195+
}
194196
} else if (node.type === 'Anchor') {
195197
expressions.push(node.id);
196198
quasis.push(b.quasi('', i + 1 === sequence.length));

packages/svelte/tests/snapshot/samples/each-string-template/_expected/server/index.svelte.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export default function Each_string_template($$payload, $$props) {
1414
const thing = each_array[$$index];
1515
const anchor_1 = $.create_anchor($$payload);
1616

17-
$$payload.out += `${anchor_1}${$.escape(thing)},${$.escape(' ')}${anchor_1}`;
17+
$$payload.out += `${anchor_1}${$.escape(thing)}, ${anchor_1}`;
1818
}
1919

2020
$$payload.out += `${anchor}`;

0 commit comments

Comments
 (0)