UNPKG

twing

Version:

First-class Twig engine for Node.js

52 lines (51 loc) 1.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.executeSetNodeSynchronously = exports.executeSetNode = void 0; const executeSetNode = async (node, executionContext) => { const { context, nodeExecutor: execute, outputBuffer } = executionContext; const { names: namesNode, values: valuesNode } = node.children; const { captures } = node.attributes; const names = await execute(namesNode, executionContext); if (captures) { outputBuffer.start(); await execute(valuesNode, executionContext); const value = outputBuffer.getAndClean(); for (const name of names) { context.set(name, value); } } else { const values = await execute(valuesNode, executionContext); let index = 0; for (const name of names) { const value = values[index]; context.set(name, value); index++; } } }; exports.executeSetNode = executeSetNode; const executeSetNodeSynchronously = (node, executionContext) => { const { context, nodeExecutor: execute, outputBuffer } = executionContext; const { names: namesNode, values: valuesNode } = node.children; const { captures } = node.attributes; const names = execute(namesNode, executionContext); if (captures) { outputBuffer.start(); execute(valuesNode, executionContext); const value = outputBuffer.getAndClean(); for (const name of names) { context.set(name, value); } } else { const values = execute(valuesNode, executionContext); let index = 0; for (const name of names) { const value = values[index]; context.set(name, value); index++; } } }; exports.executeSetNodeSynchronously = executeSetNodeSynchronously;