trim SSR'd output more intelligently - fixes #998

pull/1004/head
Rich Harris 8 years ago committed by GitHub
parent 36718e79bd
commit 797165b5a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -61,7 +61,7 @@ export default function ssr(
conditions: [], conditions: [],
}); });
parsed.html.children.forEach((node: Node) => { trim(parsed.html.children).forEach((node: Node) => {
visit(generator, mainBlock, node); visit(generator, mainBlock, node);
}); });
@ -122,7 +122,7 @@ export default function ssr(
} }
`} `}
return \`${generator.renderCode}\`.trim(); return \`${generator.renderCode}\`;
}; };
${name}.renderCss = function() { ${name}.renderCss = function() {
@ -202,3 +202,25 @@ export default function ssr(
return generator.generate(result, options, { name, format }); return generator.generate(result, options, { name, format });
} }
function trim(nodes) {
let start = 0;
for (; start < nodes.length; start += 1) {
const node = nodes[start];
if (node.type !== 'Text') break;
node.data = node.data.replace(/^\s+/, '');
if (node.data) break;
}
let end = nodes.length;
for (; end > start; end -= 1) {
const node = nodes[end - 1];
if (node.type !== 'Text') break;
node.data = node.data.replace(/\s+$/, '');
if (node.data) break;
}
return nodes.slice(start, end);
}

@ -7,7 +7,7 @@ SvelteComponent.data = function() {
SvelteComponent.render = function(state, options = {}) { SvelteComponent.render = function(state, options = {}) {
state = Object.assign({}, state); state = Object.assign({}, state);
return ``.trim(); return ``;
}; };
SvelteComponent.renderCss = function() { SvelteComponent.renderCss = function() {

@ -9,7 +9,7 @@ SvelteComponent.data = function() {
SvelteComponent.render = function(state, options = {}) { SvelteComponent.render = function(state, options = {}) {
state = Object.assign({}, state); state = Object.assign({}, state);
return ``.trim(); return ``;
}; };
SvelteComponent.renderCss = function() { SvelteComponent.renderCss = function() {

Loading…
Cancel
Save