twing
Version:
First-class Twig engine for Node.js
34 lines (33 loc) • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.executeArrowFunctionNodeSynchronously = exports.executeArrowFunctionNode = void 0;
const executeArrowFunctionNode = (node, executionContext) => {
const { context, nodeExecutor: execute } = executionContext;
const { body, names } = node.children;
const assignmentNodes = Object.values(names.children);
return Promise.resolve((...functionArgs) => {
let index = 0;
for (const assignmentNode of assignmentNodes) {
const { name } = assignmentNode.attributes;
context.set(name, functionArgs[index]);
index++;
}
return execute(body, executionContext);
});
};
exports.executeArrowFunctionNode = executeArrowFunctionNode;
const executeArrowFunctionNodeSynchronously = (node, executionContext) => {
const { context, nodeExecutor: execute } = executionContext;
const { body, names } = node.children;
const assignmentNodes = Object.values(names.children);
return (...functionArgs) => {
let index = 0;
for (const assignmentNode of assignmentNodes) {
const { name } = assignmentNode.attributes;
context.set(name, functionArgs[index]);
index++;
}
return execute(body, executionContext);
};
};
exports.executeArrowFunctionNodeSynchronously = executeArrowFunctionNodeSynchronously;