unifast-bindings-node 0.0.10

High-performance Markdown/MDX compiler
Documentation
mod convert_options;
mod convert_result;
mod parse_hast;

use convert_options::{JsCompileOptions, convert_options};
use convert_result::convert_result;
use napi_derive::napi;

#[napi]
pub fn compile(
    input: String,
    options: Option<JsCompileOptions>,
) -> napi::Result<convert_result::JsCompileResult> {
    let opts = convert_options(options);
    let result = unifast_core::api::compile::compile(&input, &opts);
    Ok(convert_result(result))
}

#[napi]
pub fn stringify_hast(json: String) -> napi::Result<String> {
    let root = parse_hast::hroot_from_json(&json)
        .map_err(|e| napi::Error::from_reason(format!("Failed to parse HAST JSON: {e}")))?;
    Ok(unifast_core::emit::html::stringify::stringify(&root))
}