silphius/app/swcx/evaluators/array.js

14 lines
358 B
JavaScript
Raw Normal View History

2024-06-16 08:01:01 -05:00
export default function(node, {evaluate, scope}) {
const elements = [];
let isAsync = false;
for (const {expression} of node.elements) {
const {async, value} = evaluate(expression, {scope});
isAsync = isAsync || async;
elements.push(value);
}
return {
async: !!isAsync,
value: isAsync ? Promise.all(elements) : elements,
};
}