Skip to main content

unifast_bindings_wasm/
lib.rs

1use unifast_core::api::compile;
2use unifast_core::api::options::CompileOptions;
3use unifast_core::api::result::Output;
4use wasm_bindgen::prelude::*;
5
6#[wasm_bindgen]
7#[must_use]
8pub fn compile_to_html(input: &str) -> String {
9    let opts = CompileOptions::default();
10    let result = compile::compile(input, &opts);
11    match result.output {
12        Output::Html(html) => html,
13        _ => String::new(),
14    }
15}
16
17#[wasm_bindgen]
18pub fn compile_with_options(input: &str, options_json: &str) -> Result<String, JsValue> {
19    let opts = CompileOptions::from_json(options_json)
20        .map_err(|e| JsValue::from_str(&format!("invalid options JSON: {e}")))?;
21    let result = compile::compile(input, &opts);
22    Ok(result.to_json_string())
23}