Populate standard properties.

This commit is contained in:
Tom Alexander
2023-12-24 15:48:33 -05:00
parent 310ab2eab2
commit b9b3ef6e74
6 changed files with 127 additions and 19 deletions

View File

@@ -3,15 +3,25 @@
use organic::parser::parse_with_settings;
use organic::settings::GlobalSettings;
use wasm::ParseResult;
use wasm::ToWasm;
use wasm::ToWasmContext;
use wasm_bindgen::prelude::wasm_bindgen;
mod error;
mod wasm;
#[wasm_bindgen]
pub fn parse_org(org_contents: &str) -> wasm_bindgen::JsValue {
let global_settings = GlobalSettings::default();
let rust_parsed = parse_with_settings(org_contents, &global_settings)
.map(|document| ParseResult::Success((org_contents, document).into()))
.unwrap_or_else(|err| ParseResult::Error(format!("{:?}", err)));
let to_wasm_context = ToWasmContext::new(org_contents);
let rust_parsed = match parse_with_settings(org_contents, &global_settings)
.map(|document| document.to_wasm(to_wasm_context))
.map(|wasm_document| match wasm_document {
Ok(wasm_document) => ParseResult::Success(wasm_document),
Err(err) => ParseResult::Error(format!("{:?}", err)),
}) {
Ok(wasm_document) => wasm_document,
Err(err) => ParseResult::Error(format!("{:?}", err)),
};
serde_wasm_bindgen::to_value(&rust_parsed).unwrap()
}