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

Function parse

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

Source from the content-addressed store, hash-verified

37
38#[wasm_bindgen]
39pub fn parse(source_text: String) -> Result<SerializableParserResult, serde_wasm_bindgen::Error> {
40 let allocator = Bump::default();
41 let lexer = Lexer::new(&CssAtomSet::ATOMS, source_text.as_str());
42 let result = Parser::new(&allocator, source_text.as_str(), lexer).parse_entirely::<StyleSheet>();
43 let serializer = serde_wasm_bindgen::Serializer::json_compatible();
44 let diagnostics = result
45 .errors
46 .iter()
47 .map(|err| {
48 let DiagnosticMeta { code, message, help, .. } = (err.formatter)(err, &source_text);
49 let span = err.start_cursor.span() + err.end_cursor.span();
50 let from = span.start().into();
51 let to = span.end().into();
52 SerializableDiagnostic {
53 from,
54 to,
55 code: code.to_string(),
56 severity: err.severity.to_string(),
57 message,
58 help,
59 }
60 .serialize(&serializer)
61 .unwrap()
62 })
63 .collect::<Vec<_>>();
64 Ok(SerializableParserResult { ast: result.output.serialize(&serializer).unwrap(), diagnostics })
65}
66
67#[wasm_bindgen]
68pub fn minify(source_text: String) -> Result<String, serde_wasm_bindgen::Error> {

Callers 4

mainFunction · 0.50
parse_spec_propertiesFunction · 0.50
mainFunction · 0.50
handleEventMethod · 0.50

Calls 6

iterMethod · 0.80
as_strMethod · 0.45
spanMethod · 0.45
startMethod · 0.45
endMethod · 0.45
serializeMethod · 0.45

Tested by 1

parse_spec_propertiesFunction · 0.40