Skip to main content

stylex_transform/transform/fold/
fold_export_default_expr.rs

1use swc_core::{
2  common::comments::Comments,
3  ecma::{ast::ExportDefaultExpr, visit::FoldWith},
4};
5
6use crate::{StyleXTransform, shared::utils::common::normalize_expr};
7use stylex_enums::core::TransformationCycle;
8
9impl<C> StyleXTransform<C>
10where
11  C: Comments,
12{
13  pub(crate) fn fold_export_default_expr_impl(
14    &mut self,
15    mut export_default_expr: ExportDefaultExpr,
16  ) -> ExportDefaultExpr {
17    if self.state.cycle == TransformationCycle::Skip {
18      return export_default_expr;
19    }
20
21    if self.state.cycle == TransformationCycle::StateFilling {
22      return export_default_expr.fold_children_with(self);
23    }
24
25    if self.state.cycle == TransformationCycle::TransformEnter
26      || self.state.cycle == TransformationCycle::TransformExit
27    {
28      let normalized_expr = normalize_expr(&mut export_default_expr.expr);
29
30      if let Some(value) = self.transform_call_expression(normalized_expr) {
31        *export_default_expr.expr = value;
32      }
33    }
34
35    export_default_expr
36  }
37}