UNPKG

twing

Version:

First-class Twig engine for Node.js

37 lines (36 loc) 1.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createForNode = void 0; const node_1 = require("../node"); const for_loop_1 = require("./for-loop"); const if_1 = require("./if"); const createForNode = (keyTarget, valueTarget, sequence, ifExpression, body, elseNode, line, column, tag) => { const loop = (0, for_loop_1.createForLoopNode)(line, column, tag); const bodyChildren = {}; let i = 0; bodyChildren[i++] = body; bodyChildren[i++] = loop; let actualBody = (0, node_1.createNode)(bodyChildren, line, column); if (ifExpression) { const ifChildren = {}; let i = 0; ifChildren[i++] = ifExpression; ifChildren[i++] = actualBody; actualBody = (0, if_1.createIfNode)((0, node_1.createNode)(ifChildren, line, column), null, line, column); loop.attributes.hasAnIf = true; } const children = { keyTarget: keyTarget, valueTarget: valueTarget, sequence: sequence, body: actualBody }; if (elseNode) { children.else = elseNode; loop.attributes.hasAnElse = true; } return (0, node_1.createBaseNode)("for", { hasAnIf: ifExpression !== null }, children, line, column, tag); }; exports.createForNode = createForNode;