mod.rs (1148B)
1 mod bindings; 2 mod contracts; 3 mod dto_roots; 4 mod fs; 5 mod generate; 6 mod manifest; 7 mod output; 8 mod package_matrix; 9 mod package_metadata; 10 mod ts; 11 mod wasm; 12 mod wasm_declarations; 13 14 use std::path::Path; 15 16 use crate::build_control::Mode; 17 18 pub fn artifact( 19 source_root: &Path, 20 consumer_root: &Path, 21 target: &str, 22 language: &str, 23 mode: Mode, 24 ) -> Result<(), String> { 25 match (target, language) { 26 ("typescript", "typescript") => { 27 generate::generate_all(source_root, consumer_root, mode)?; 28 } 29 ("wasm", "javascript") => { 30 wasm::generate(source_root, consumer_root, &[], mode)?; 31 generate::generate_package_metadata(source_root, consumer_root, mode)?; 32 } 33 ("ffi", "swift" | "kotlin") => { 34 bindings::generate(source_root, consumer_root, language, mode)?; 35 bindings::check_generated_language(source_root, consumer_root, language)?; 36 } 37 _ => { 38 return Err(format!( 39 "unsupported SDK artifact route {target}/{language}" 40 )); 41 } 42 } 43 contracts::validate_sdk_contracts(consumer_root) 44 }