What's Changed
Fix JS/WASM bindings (#25)
The JS bindings (@reteps/dockerfmt) have been broken since the initial release due to TinyGo bugs:
reflect.AssignableTopanics with interfaces, breakingencoding/jsonused by the buildkit parser (tinygo#4277)\sregexp failures in newer TinyGo versions, also breaking the buildkit parser
This release switches from TinyGo to standard Go (GOOS=js GOARCH=wasm), which has full reflect and regexp support. The WASM binary is larger (2 MB → 6.9 MB) but the bindings now work correctly for all Dockerfile forms — both shell-form (CMD echo hello) and JSON-form (CMD ["echo", "hello"]).
Other changes
- Added CI workflow (Go tests + JS build/test) on PRs and main pushes
- Added JS integration tests
- Replaced
encoding/jsonwith reflection-free[]stringJSON marshal/unmarshal - Simplified JS bindings by using
syscall/jsinstead of manual memory management - Switched npm publish to OIDC trusted publishing