diff --git a/crates/swc_ecma_ast/src/typescript.rs b/crates/swc_ecma_ast/src/typescript.rs index bc7a9df10ce6..aa03c239440e 100644 --- a/crates/swc_ecma_ast/src/typescript.rs +++ b/crates/swc_ecma_ast/src/typescript.rs @@ -711,6 +711,7 @@ pub enum TruePlusMinus { Minus, } +#[cfg(feature = "serde-impl")] impl Serialize for TruePlusMinus { fn serialize(&self, serializer: S) -> Result where @@ -724,6 +725,7 @@ impl Serialize for TruePlusMinus { } } +#[cfg(feature = "serde-impl")] impl<'de> Deserialize<'de> for TruePlusMinus { fn deserialize(deserializer: D) -> Result where diff --git a/crates/swc_estree_ast/src/common.rs b/crates/swc_estree_ast/src/common.rs index b4c5f0eed121..876a5c414a67 100644 --- a/crates/swc_estree_ast/src/common.rs +++ b/crates/swc_estree_ast/src/common.rs @@ -36,8 +36,9 @@ impl Loc { } } -#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] -#[serde(rename_all = "camelCase")] +#[derive(Debug, Clone, PartialEq, Eq)] +#[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(feature = "serde-impl", serde(rename_all = "camelCase"))] pub struct BaseNode { #[serde(default, skip_serializing_if = "Vec::is_empty")] pub leading_comments: Vec,