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
12pub(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}