Lint and format src/compiler/compile/render_ssr/handlers/EachBlock.js

pull/8569/head
Simon Holthausen 3 years ago
parent 6df224a0f6
commit 611637975a

@ -7,26 +7,22 @@ import { get_const_tags } from './shared/get_const_tags.js';
* @param {import('../Renderer.js').RenderOptions} options * @param {import('../Renderer.js').RenderOptions} options
*/ */
export default function (node, renderer, options) { export default function (node, renderer, options) {
const args = [node.context_node]; const args = [node.context_node];
if (node.index) if (node.index) args.push({ type: 'Identifier', name: node.index });
args.push({ type: 'Identifier', name: node.index }); renderer.push();
renderer.push(); renderer.render(node.children, options);
renderer.render(node.children, options); const result = renderer.pop();
const result = renderer.pop(); const consequent = x`@each(${node.expression.node}, (${args}) => { ${get_const_tags(
const consequent = x `@each(${node.expression.node}, (${args}) => { ${get_const_tags(node.const_tags)}; return ${result} })`; node.const_tags
if (node.else) { )}; return ${result} })`;
renderer.push(); if (node.else) {
renderer.render(node.else.children, options); renderer.push();
let alternate = renderer.pop(); renderer.render(node.else.children, options);
if (node.else.const_tags.length > 0) let alternate = renderer.pop();
alternate = x `(() => { ${get_const_tags(node.else.const_tags)}; return ${alternate} })()`; if (node.else.const_tags.length > 0)
renderer.add_expression(x `${node.expression.node}.length ? ${consequent} : ${alternate}`); alternate = x`(() => { ${get_const_tags(node.else.const_tags)}; return ${alternate} })()`;
} renderer.add_expression(x`${node.expression.node}.length ? ${consequent} : ${alternate}`);
else { } else {
renderer.add_expression(consequent); renderer.add_expression(consequent);
} }
} }

Loading…
Cancel
Save