silphius/app/swcx/evaluators/array.js
2024-06-17 05:20:01 -05:00

14 lines
358 B
JavaScript

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,
};
}