stylex_transform/transform/fold/
fold_export_default_expr.rs1use 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}