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

19 lines
700 B
Rust
Raw Normal View History

2021-08-10 03:35:14 -04:00
use crate::cfg::Cfg;
use crate::common::whitespace::trimmed;
2022-09-27 22:51:44 -04:00
use minify_js::{minify as minifier, TopLevelMode};
2022-09-27 22:51:44 -04:00
pub fn minify_js(cfg: &Cfg, mode: TopLevelMode, out: &mut Vec<u8>, code: &[u8]) {
2022-06-21 03:29:12 -04:00
if cfg.minify_js {
let source = code.to_vec();
// TODO Write to `out` directly, but only if we can guarantee that the length will never exceed the input.
let mut output = Vec::new();
2022-09-27 22:51:44 -04:00
let result = minifier(mode, source, &mut output);
2022-06-21 03:29:12 -04:00
// TODO Collect error as warning.
if !result.is_err() && output.len() < code.len() {
out.extend_from_slice(output.as_slice());
return;
};
}
2022-06-21 03:29:12 -04:00
out.extend_from_slice(trimmed(code));
2021-08-06 02:17:45 -04:00
}