use crate::errors::*;
use minify_html_onepass::{with_friendly_error, Cfg};
pub(crate) fn minify(code: &str, minify_extras: bool) -> Result<String, ServerError> {
if cfg!(feature = "minify") {
let cfg = Cfg {
minify_js: minify_extras && cfg!(feature = "minify-js"),
minify_css: minify_extras && cfg!(feature = "minify-css"),
};
let mut bytes = code.as_bytes().to_vec();
match with_friendly_error(&mut bytes, &cfg) {
Ok(min_len) => Ok(std::str::from_utf8(&bytes[..min_len]).unwrap().to_string()),
Err(err) => Err(ServerError::MinifyError {
source: std::io::Error::new(std::io::ErrorKind::NotFound, format!("{:#?}", err)),
}),
}
} else {
Ok(code.to_string())
}
}