tangled
alpha
login
or
join now
vmx-atproto-dev.bsky.social
/
mlf
forked from
stavola.xyz/mlf
0
fork
atom
A human-friendly DSL for ATProto Lexicons
0
fork
atom
overview
issues
pulls
pipelines
Oops, fix wasm build
stavola.xyz
5 months ago
537b25d5
011ef6dc
+21
-1
1 changed file
expand all
collapse all
unified
split
mlf-wasm
src
lib.rs
+21
-1
mlf-wasm/src/lib.rs
···
269
269
#[wasm_bindgen]
270
270
pub fn generate_code(source: &str, namespace: &str, generator_name: &str) -> JsValue {
271
271
// Load standard library
272
272
-
let workspace = match mlf_lang::Workspace::with_std() {
272
272
+
let mut workspace = match mlf_lang::Workspace::with_std() {
273
273
Ok(ws) => ws,
274
274
Err(e) => {
275
275
let result = GenerateCodeResult {
···
293
293
return serde_wasm_bindgen::to_value(&result).unwrap();
294
294
}
295
295
};
296
296
+
297
297
+
// Add the module to workspace for resolution
298
298
+
if let Err(e) = workspace.add_module(namespace.to_string(), lexicon.clone()) {
299
299
+
let result = GenerateCodeResult {
300
300
+
success: false,
301
301
+
code: None,
302
302
+
error: Some(format!("Failed to add module: {:?}", e)),
303
303
+
};
304
304
+
return serde_wasm_bindgen::to_value(&result).unwrap();
305
305
+
}
306
306
+
307
307
+
// Resolve types
308
308
+
if let Err(e) = workspace.resolve() {
309
309
+
let result = GenerateCodeResult {
310
310
+
success: false,
311
311
+
code: None,
312
312
+
error: Some(format!("Type resolution error: {:?}", e)),
313
313
+
};
314
314
+
return serde_wasm_bindgen::to_value(&result).unwrap();
315
315
+
}
296
316
297
317
// Find the generator
298
318
let generator = match mlf_codegen::plugin::find_generator(generator_name) {