Skip to main content

unifast_bindings_node/
lib.rs

1mod convert_options;
2mod convert_result;
3mod parse_hast;
4
5use convert_options::{JsCompileOptions, convert_options};
6use convert_result::convert_result;
7use napi_derive::napi;
8
9#[napi]
10pub fn compile(
11    input: String,
12    options: Option<JsCompileOptions>,
13) -> napi::Result<convert_result::JsCompileResult> {
14    let opts = convert_options(options);
15    let result = unifast_core::api::compile::compile(&input, &opts);
16    Ok(convert_result(result))
17}
18
19#[napi]
20pub fn stringify_hast(json: String) -> napi::Result<String> {
21    let root = parse_hast::hroot_from_json(&json)
22        .map_err(|e| napi::Error::from_reason(format!("Failed to parse HAST JSON: {e}")))?;
23    Ok(unifast_core::emit::html::stringify::stringify(&root))
24}