<# .SYNOPSIS Builds helpdeco, the WinHelp decompiler, to WebAssembly in Docker and copies it, with the worker that runs it, to frontend/vendor/local/helpdeco@1/, where the site serves it from /vendor/. The exact helpdeco source built is copied into source/ beside these files, so it is published at /source/helpdeco/ with them. Nothing is installed on this machine; Docker Desktop must be running. #> $ErrorActionPreference = 'Continue' Set-Location $PSScriptRoot $dist = Join-Path $PSScriptRoot 'dist' if (Test-Path $dist) { Remove-Item -Recurse -Force $dist } & docker build --target export --output "type=local,dest=$dist" . if ($LASTEXITCODE -ne 0) { throw 'docker build failed' } $dest = Join-Path $PSScriptRoot '..\..\vendor\local\helpdeco@1' New-Item -ItemType Directory -Force $dest | Out-Null Copy-Item (Join-Path $dist 'helpdeco.mjs') $dest -Force Copy-Item (Join-Path $dist 'helpdeco.wasm') $dest -Force Copy-Item (Join-Path $dist 'source\LICENSE') (Join-Path $dest 'COPYING') -Force foreach ($f in 'worker.mjs', 'run.mjs') { Copy-Item (Join-Path $PSScriptRoot "src\$f") $dest -Force } $src = Join-Path $PSScriptRoot 'source' New-Item -ItemType Directory -Force $src | Out-Null Copy-Item (Join-Path $dist 'source\*') $src -Force Get-ChildItem $dest | Format-Table Name, Length