moquilang 0.1.1

A WebAssembly module for entity operations and service calls with a database (default to a SQLite integration)
Documentation
use std::process::Command;
use std::env;
use std::path::Path;

fn main() {
    // Only run wasm-bindgen when building for wasm32 target
    let target = env::var("TARGET").unwrap_or_default();
    
    if target == "wasm32-unknown-unknown" {
        println!("cargo:warning=Running wasm-bindgen after build...");
        
        // Determine build profile (debug or release)
        let profile = env::var("PROFILE").unwrap_or_else(|_| "debug".to_string());
        
        // Path to the generated wasm file
        let wasm_file = format!("target/wasm32-unknown-unknown/{}/moquilang.wasm", profile);
        
        // Ensure the wasm file exists
        if !Path::new(&wasm_file).exists() {
            println!("cargo:warning=WASM file not found at {}", wasm_file);
            return;
        }
        
        // Create pkg directory if it doesn't exist
        std::fs::create_dir_all("pkg").unwrap_or_else(|_| {
            println!("cargo:warning=pkg directory already exists");
        });
        
        // Run wasm-bindgen
        let status = Command::new("wasm-bindgen")
            .args(&[
                "--target", "web",
                "--out-dir", "pkg",
                "--no-typescript",
                &wasm_file,
            ])
            .status()
            .expect("Failed to run wasm-bindgen. Is it installed? Run: cargo install wasm-bindgen-cli");
            
        if !status.success() {
            panic!("wasm-bindgen command failed");
        }
        
        println!("cargo:warning=wasm-bindgen completed successfully");
    }
}