rspack_plugin_javascript 0.7.11

rspack javascript plugin
Documentation
use rspack_util::SpanExt;
use swc_core::ecma::ast::ArrayLit;

use super::BasicEvaluatedExpression;
use crate::visitors::JavascriptParser;

#[inline]
pub fn eval_array_expression<'a>(
  scanner: &mut JavascriptParser,
  expr: &'a ArrayLit,
) -> Option<BasicEvaluatedExpression<'a>> {
  let mut items = vec![];

  for elem in &expr.elems {
    if let Some(elem) = elem
      && elem.spread.is_none()
    {
      items.push(scanner.evaluate_expression(&elem.expr));
    } else {
      return None;
    }
  }

  let mut res = BasicEvaluatedExpression::with_range(expr.span.real_lo(), expr.span.real_hi());
  res.set_items(items);
  Some(res)
}