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

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

@ -8,25 +8,21 @@ import { get_const_tags } from './shared/get_const_tags.js';
*/ */
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(node.const_tags)}; return ${result} })`; const consequent = x`@each(${node.expression.node}, (${args}) => { ${get_const_tags(
node.const_tags
)}; return ${result} })`;
if (node.else) { if (node.else) {
renderer.push(); renderer.push();
renderer.render(node.else.children, options); renderer.render(node.else.children, options);
let alternate = renderer.pop(); let alternate = renderer.pop();
if (node.else.const_tags.length > 0) if (node.else.const_tags.length > 0)
alternate = x `(() => { ${get_const_tags(node.else.const_tags)}; return ${alternate} })()`; alternate = x`(() => { ${get_const_tags(node.else.const_tags)}; return ${alternate} })()`;
renderer.add_expression(x `${node.expression.node}.length ? ${consequent} : ${alternate}`); renderer.add_expression(x`${node.expression.node}.length ? ${consequent} : ${alternate}`);
} } else {
else {
renderer.add_expression(consequent); renderer.add_expression(consequent);
} }
} }

Loading…
Cancel
Save