minify-html/rust/main/src/minify/css.rs

32 lines
984 B
Rust

use std::str::from_utf8_unchecked;
use crate::cfg::Cfg;
use crate::common::whitespace::trimmed;
use css_minify::optimizations::{Level, Minifier};
pub fn minify_css(cfg: &Cfg, out: &mut Vec<u8>, code: &[u8]) {
if cfg.minify_css {
let result = Minifier::default().minify(
unsafe { from_utf8_unchecked(code) },
if cfg.minify_css_level_1 {
Level::One
} else if cfg.minify_css_level_2 {
Level::Two
} else if cfg.minify_css_level_3 {
Level::Three
} else {
// Default to One, as other levels may perform dangerous optimisations.
Level::One
},
);
// TODO Collect error as warning.
if let Ok(min) = result {
if min.len() < code.len() {
out.extend_from_slice(min.as_bytes());
return;
};
};
}
out.extend_from_slice(trimmed(code));
}