refactor: move Wasm related code to pkg/common/wasm

This commit is contained in:
Prad Nukala
2024-12-11 12:26:48 -05:00
parent d667c3c604
commit 23f077ce75
4 changed files with 11 additions and 10 deletions
+34
View File
@@ -0,0 +1,34 @@
//go:build js && wasm
// +build js,wasm
package wasm
import (
"encoding/base64"
"encoding/json"
"github.com/labstack/echo/v4"
)
func ContextMiddleware(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
// Extract WASM context from headers
if wasmCtx := c.Request().Header.Get("X-Wasm-Context"); wasmCtx != "" {
if ctx, err := DecodeWasmContext(wasmCtx); err == nil {
c.Set("wasm_context", ctx)
}
}
return next(c)
}
}
// decodeWasmContext decodes the WASM context from a base64 encoded string
func DecodeWasmContext(ctx string) (map[string]any, error) {
decoded, err := base64.StdEncoding.DecodeString(ctx)
if err != nil {
return nil, err
}
var ctxData map[string]any
err = json.Unmarshal(decoded, &ctxData)
return ctxData, err
}