mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-04-30 09:30:00 -07:00
44 lines
1.2 KiB
Rust
44 lines
1.2 KiB
Rust
// Source: https://github.com/oxc-project/oxc/blob/main/crates/oxc_minifier/examples/minifier.rs
|
|
|
|
use std::{fs, path::Path};
|
|
|
|
use oxc::{
|
|
allocator::Allocator,
|
|
codegen::{CodeGenerator, CodegenOptions, LegalComment},
|
|
minifier::{CompressOptions, MangleOptions, Minifier, MinifierOptions},
|
|
parser::Parser,
|
|
span::SourceType,
|
|
};
|
|
|
|
//
|
|
pub fn minify_js(path: &Path) -> String {
|
|
let allocator = Allocator::default();
|
|
|
|
let source_type = SourceType::from_path(path).unwrap();
|
|
|
|
let source_text = fs::read_to_string(path).unwrap();
|
|
|
|
let parser_return = Parser::new(&allocator, &source_text, source_type).parse();
|
|
|
|
let mut program = parser_return.program;
|
|
|
|
let minifier_return = Minifier::new(MinifierOptions {
|
|
mangle: Some(MangleOptions::default()),
|
|
compress: Some(CompressOptions::default()),
|
|
})
|
|
.build(&allocator, &mut program);
|
|
|
|
CodeGenerator::new()
|
|
.with_options(CodegenOptions {
|
|
minify: true,
|
|
single_quote: false,
|
|
comments: false,
|
|
annotation_comments: false,
|
|
source_map_path: None,
|
|
legal_comments: LegalComment::None,
|
|
})
|
|
.with_symbol_table(minifier_return.symbol_table)
|
|
.build(&program)
|
|
.code
|
|
}
|