mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-03 01:41:44 +00:00
* feat(did): remove account types * feat: Refactor Property to Proof in zkprop.go * feat: add ZKP proof mechanism for verifications * fix: return bool and error from pinInitialVault * feat: implement KeyshareSet for managing user and validator keyshares * feat: Update Credential type in protobuf * feat: update credential schema with sign count * feat: migrate and modules to middleware * refactor: rename vault module to ORM * chore(dwn): add service worker registration to index template * feat: integrate service worker for offline functionality * refactor(did): use DIDNamespace enum for verification method in proto reflection * refactor: update protobuf definitions to support Keyshare * feat: expose did keeper in app keepers * Add Motr Web App * refactor: rename motr/handlers/discovery.go to motr/handlers/openid.go * refactor: move session related code to middleware * feat: add database operations for managing assets, chains, and credentials * feat: add htmx support for UI updates * refactor: extract common helper scripts * chore: remove unused storage GUI components * refactor: Move frontend rendering to dedicated handlers * refactor: rename to * refactor: move alert implementation to templ * feat: add alert component with icon, title, and message * feat: add new RequestHeaders struct to store request headers * Feature/create home view (#9) * refactor: move view logic to new htmx handler * refactor: remove unnecessary dependencies * refactor: remove unused dependencies * feat(devbox): integrate air for local development * feat: implement openid connect discovery document * refactor: rename to * refactor(did): update service handling to support DNS discovery * feat: add support for user and validator keyshares * refactor: move keyshare signing logic to signer
60 lines
1.1 KiB
Go
60 lines
1.1 KiB
Go
//go:build js && wasm
|
|
|
|
package wasm
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
"strings"
|
|
"syscall/js"
|
|
|
|
promise "github.com/nlepage/go-js-promise"
|
|
)
|
|
|
|
// Serve serves HTTP requests using handler or http.DefaultServeMux if handler is nil.
|
|
func Serve(handler http.Handler) func() {
|
|
h := handler
|
|
if h == nil {
|
|
h = http.DefaultServeMux
|
|
}
|
|
|
|
prefix := js.Global().Get("wasmhttp").Get("path").String()
|
|
for strings.HasSuffix(prefix, "/") {
|
|
prefix = strings.TrimSuffix(prefix, "/")
|
|
}
|
|
|
|
if prefix != "" {
|
|
mux := http.NewServeMux()
|
|
mux.Handle(prefix+"/", http.StripPrefix(prefix, h))
|
|
h = mux
|
|
}
|
|
|
|
cb := js.FuncOf(func(_ js.Value, args []js.Value) interface{} {
|
|
resPromise, resolve, reject := promise.New()
|
|
|
|
go func() {
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
if err, ok := r.(error); ok {
|
|
reject(fmt.Sprintf("wasmhttp: panic: %+v\n", err))
|
|
} else {
|
|
reject(fmt.Sprintf("wasmhttp: panic: %v\n", r))
|
|
}
|
|
}
|
|
}()
|
|
|
|
res := NewResponseRecorder()
|
|
|
|
h.ServeHTTP(res, Request(args[0]))
|
|
|
|
resolve(res.JSResponse())
|
|
}()
|
|
|
|
return resPromise
|
|
})
|
|
|
|
js.Global().Get("wasmhttp").Call("setHandler", cb)
|
|
|
|
return cb.Release
|
|
}
|