@echo off
REM 🚀 FikoYT WASM Build Script (Windows)

setlocal enabledelayedexpansion

echo.
echo =====================================================
echo 🔨 Building FikoYT WASM Module (Release)
echo =====================================================
echo.

REM Add Rust/Cargo to PATH
set PATH=%USERPROFILE%\.cargo\bin;%PATH%
set PATH=%USERPROFILE%\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin;%PATH%

REM Check if wasm-pack is installed
where wasm-pack >nul 2>nul
if %errorlevel% neq 0 (
    echo 📦 wasm-pack not found, installing via cargo...
    call %USERPROFILE%\.cargo\bin\cargo install wasm-pack
    if %errorlevel% neq 0 (
        echo ❌ Failed to install wasm-pack
        pause
        exit /b 1
    )
)

REM Build WASM with optimizations (--keep-debug skips wasm-opt due to bulk memory issues)
echo 📦 Building WASM module...
call wasm-pack build ^
    --target bundler ^
    --release ^
    --keep-debug ^
    --quiet

if %errorlevel% neq 0 (
    echo ❌ Build failed!
    pause
    exit /b 1
)

REM Copy to Angular assets
echo 📋 Copying to Angular assets...
if not exist "..\public\assets\fikoyt-wasm" (
    mkdir "..\public\assets\fikoyt-wasm"
)

copy /Y "pkg\fikoyt_wasm_bg.wasm" "..\public\assets\fikoyt-wasm\" >nul
copy /Y "pkg\fikoyt_wasm.js" "..\public\assets\fikoyt-wasm\" >nul
copy /Y "pkg\fikoyt_wasm_bg.js" "..\public\assets\fikoyt-wasm\" >nul
copy /Y "pkg\fikoyt_wasm.d.ts" "..\public\assets\fikoyt-wasm\" >nul

REM Get file sizes (approximate)
for %%F in (pkg\fikoyt_wasm_bg.wasm) do set WASM_SIZE=%%~zF
for %%F in (pkg\fikoyt_wasm.js) do set JS_SIZE=%%~zF

echo.
echo ✅ Build Complete!
echo =====================================================
echo 📊 Output:
echo    WASM: %WASM_SIZE% bytes
echo    JS:   %JS_SIZE% bytes
echo.
echo 📁 Location: ..\public\assets\fikoyt-wasm\
echo.
echo 🚀 Ready for production!
echo =====================================================
echo.
pause
