swc_estree_ast/
ser.rs

1use serde::Serializer;
2
3use crate::flavor::Flavor;
4
5pub(crate) fn serialize_optional<S>(o: &Option<bool>, s: S) -> Result<S::Ok, S::Error>
6where
7    S: Serializer,
8{
9    s.serialize_some(&o.unwrap_or(false))
10}
11
12/// Always serializes as a boolean value.
13pub(crate) fn serialize_as_bool<S>(o: &Option<bool>, s: S) -> Result<S::Ok, S::Error>
14where
15    S: Serializer,
16{
17    s.serialize_bool(o.unwrap_or(false))
18}
19
20pub(crate) fn skip_expression_for_fn<T>(_: T) -> bool {
21    match Flavor::current() {
22        Flavor::Acorn { .. } => false,
23        Flavor::Babel => true,
24    }
25}
26
27pub(crate) fn skip_interpreter<T>(_: T) -> bool {
28    match Flavor::current() {
29        Flavor::Acorn { .. } => true,
30        Flavor::Babel => false,
31    }
32}
33
34pub(crate) fn skip_typescript<T>(_: T) -> bool {
35    match Flavor::current() {
36        Flavor::Acorn { .. } => true,
37        Flavor::Babel => false,
38    }
39}
40
41pub(crate) fn skip_comments_on_program<T>(_: T) -> bool {
42    match Flavor::current() {
43        Flavor::Acorn { extra_comments } => !extra_comments,
44        _ => true,
45    }
46}