twing
Version:
First-class Twig engine for Node.js
39 lines (38 loc) • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.executeForLoopNodeSynchronously = exports.executeForLoopNode = void 0;
const executeForLoopNode = (node, executionContext) => {
const { hasAnElse, hasAnIf } = node.attributes;
const { context } = executionContext;
if (hasAnElse) {
context.set('_iterated', true);
}
const loop = context.get('loop');
loop.set('index0', loop.get('index0') + 1);
loop.set('index', loop.get('index') + 1);
loop.set('first', false);
if (!hasAnIf && loop.has('length')) {
loop.set('revindex0', loop.get('revindex0') - 1);
loop.set('revindex', loop.get('revindex') - 1);
loop.set('last', loop.get('revindex0') === 0);
}
return Promise.resolve();
};
exports.executeForLoopNode = executeForLoopNode;
const executeForLoopNodeSynchronously = (node, executionContext) => {
const { hasAnElse, hasAnIf } = node.attributes;
const { context } = executionContext;
if (hasAnElse) {
context.set('_iterated', true);
}
const loop = context.get('loop');
loop.set('index0', loop.get('index0') + 1);
loop.set('index', loop.get('index') + 1);
loop.set('first', false);
if (!hasAnIf && loop.has('length')) {
loop.set('revindex0', loop.get('revindex0') - 1);
loop.set('revindex', loop.get('revindex') - 1);
loop.set('last', loop.get('revindex0') === 0);
}
};
exports.executeForLoopNodeSynchronously = executeForLoopNodeSynchronously;