swc_css_minifier/compressor/
url.rs1use swc_css_ast::*;
2
3use super::Compressor;
4
5impl Compressor {
6 pub(super) fn compress_url(&self, url: &mut Url) {
7 if url.name.value != "url" {
8 return;
9 }
10
11 if let Some(modifiers) = &url.modifiers {
12 if !modifiers.is_empty() {
13 return;
14 }
15 }
16
17 if let Some(UrlValue::Str(Str { value, span, .. })) = url.value.as_deref() {
18 let mut counter = 0;
19
20 for c in value.chars() {
21 if counter == 2 {
22 return;
23 }
24
25 match c {
26 '(' | ')' | '"' | '\'' => {
27 counter += 1;
28 }
29 _ if c.is_whitespace() => {
30 counter += 1;
31 }
32 _ => {}
33 }
34 }
35
36 url.value = Some(Box::new(UrlValue::Raw(UrlValueRaw {
37 span: *span,
38 value: value.clone(),
39 raw: None,
40 })));
41 }
42 }
43}