#!/bin/bash
# Build script for WASM no_std testing

set -e

echo "🦆 Building waddling-errors for WASM (no_std)"
echo "=============================================="
echo ""

# Check if rust wasm target is installed
if ! rustup target list --installed | grep -q "wasm32-unknown-unknown"; then
    echo "📦 Installing wasm32-unknown-unknown target..."
    rustup target add wasm32-unknown-unknown
fi

echo "🔨 Building for wasm32-unknown-unknown (pure no_std)..."
cd ../..
cargo build --example no_std_wasm --target wasm32-unknown-unknown --no-default-features --release

echo ""
echo "✅ Build successful!"
echo ""
echo "📊 WASM binary info:"
WASM_FILE="../../target/wasm32-unknown-unknown/release/examples/no_std_wasm.wasm"
if [ -f "$WASM_FILE" ]; then
    ls -lh "$WASM_FILE"
    echo ""
    echo "🎯 WASM file location:"
    echo "   $WASM_FILE"

    # Copy to wasm_test directory for browser testing
    cp "$WASM_FILE" examples/wasm_test/no_std_wasm.wasm
    echo ""
    echo "📋 Copied to examples/wasm_test/no_std_wasm.wasm for browser testing"
else
    echo "❌ WASM file not found!"
    exit 1
fi

echo ""
echo "🧪 Testing methods:"
echo ""
echo "1. Browser test (visual):"
echo "   cd examples/wasm_test"
echo "   python -m http.server 8000"
echo "   Open: http://localhost:8000"
echo ""
echo "2. Command-line test (if wasmtime installed):"
echo "   wasmtime $WASM_FILE"
echo ""
echo "3. Node.js test (if wasm-pack installed):"
echo "   wasm-pack build --target nodejs"
echo ""
