MCPcopy Create free account
hub / github.com/csskit/csskit / minify

Function minify

crates/csskit_wasm/src/lib.rs:68–91  ·  view source on GitHub ↗
(source_text: String)

Source from the content-addressed store, hash-verified

66
67#[wasm_bindgen]
68pub fn minify(source_text: String) -> Result<String, serde_wasm_bindgen::Error> {
69 let allocator = Bump::default();
70 let lexer = Lexer::new(&CssAtomSet::ATOMS, source_text.as_str());
71 let mut result = Parser::new(&allocator, source_text.as_str(), lexer).parse_entirely::<StyleSheet>();
72 if !result.errors.is_empty() {
73 return Err(serde_wasm_bindgen::Error::new("Parse error"));
74 }
75 let mut output_string = String::new();
76 if let Some(ref mut stylesheet) = result.output {
77 let mut transformer =
78 Transformer::new_in(&allocator, CssMinifierFeature::all_bits(), &CssAtomSet::ATOMS, &source_text);
79 transformer.transform(stylesheet);
80 let overlays = transformer.overlays();
81 {
82 let mut stream = CursorOverlaySink::new(
83 &source_text,
84 &overlays,
85 CursorCompactWriteSink::new(&source_text, &mut output_string),
86 );
87 result.to_cursors(&mut stream);
88 }
89 }
90 Ok(output_string)
91}
92
93#[wasm_bindgen]
94pub fn format(source_text: String, options: JsValue) -> Result<String, serde_wasm_bindgen::Error> {

Callers 1

handleEventMethod · 0.50

Calls 6

ErrClass · 0.85
transformMethod · 0.80
overlaysMethod · 0.80
as_strMethod · 0.45
is_emptyMethod · 0.45
to_cursorsMethod · 0.45

Tested by

no test coverage detected