twing
Version:
First-class Twig engine for Node.js
37 lines (36 loc) • 1.3 kB
JavaScript
;
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;