lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

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 }