swc_css_minifier/compressor/
frequency.rs

1use swc_atoms::atom;
2use swc_css_ast::*;
3
4use super::Compressor;
5
6impl Compressor {
7    pub(super) fn compress_frequency(&mut self, frequency: &mut Frequency) {
8        match &*frequency.unit.value {
9            "hz" if frequency.value.value > 0.0 && frequency.value.value % 1000.0 == 0.0 => {
10                let new_value = frequency.value.value / 1000.0;
11
12                frequency.value = Number {
13                    span: frequency.value.span,
14                    value: new_value,
15                    raw: None,
16                };
17                frequency.unit = Ident {
18                    span: frequency.unit.span,
19                    value: atom!("khz"),
20                    raw: None,
21                };
22            }
23            "khz"
24                if frequency.value.value == 0.0
25                    || (frequency.value.value > 0.0 && frequency.value.value < 0.1) =>
26            {
27                let new_value = frequency.value.value * 1000.0;
28
29                frequency.value = Number {
30                    value: new_value,
31                    raw: None,
32                    span: frequency.span,
33                };
34                frequency.unit = Ident {
35                    span: frequency.unit.span,
36                    value: atom!("hz"),
37                    raw: None,
38                };
39            }
40            _ => {}
41        }
42    }
43}