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