twing
Version:
First-class Twig engine for Node.js
39 lines (38 loc) • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.executeArrayNodeSynchronously = exports.executeArrayNode = void 0;
const get_key_value_pairs_1 = require("../../helpers/get-key-value-pairs");
const context_1 = require("../../context");
const executeArrayNode = async (baseNode, executionContext) => {
const { nodeExecutor: execute } = executionContext;
const keyValuePairs = (0, get_key_value_pairs_1.getKeyValuePairs)(baseNode);
const array = [];
for (const { value: valueNode } of keyValuePairs) {
const value = await execute(valueNode, executionContext);
if (valueNode.type === "spread") {
array.push(...value);
}
else {
array.push(value);
}
}
return array;
};
exports.executeArrayNode = executeArrayNode;
const executeArrayNodeSynchronously = (baseNode, executionContext) => {
const { nodeExecutor: execute } = executionContext;
const keyValuePairs = (0, get_key_value_pairs_1.getKeyValuePairs)(baseNode);
const array = [];
for (const { value: valueNode } of keyValuePairs) {
const value = execute(valueNode, executionContext);
if (valueNode.type === "spread") {
const values = (0, context_1.getValues)(value);
array.push(...values);
}
else {
array.push(value);
}
}
return array;
};
exports.executeArrayNodeSynchronously = executeArrayNodeSynchronously;