package htmx import "net/http" func IsRequest(r *http.Request) bool { return r.Header.Get("HX-Request") == "true" } func IsPartial(r *http.Request) bool { return r.Header.Get("HX-Request-Type") == "partial" } func IsBoosted(r *http.Request) bool { return r.Header.Get("HX-Boosted") == "true" } func IsHistoryRestore(r *http.Request) bool { return r.Header.Get("HX-History-Restore-Request") == "true" } func GetTarget(r *http.Request) string { return r.Header.Get("HX-Target") } func GetTrigger(r *http.Request) string { return r.Header.Get("HX-Trigger") } func GetTriggerName(r *http.Request) string { return r.Header.Get("HX-Trigger-Name") } func GetCurrentURL(r *http.Request) string { return r.Header.Get("HX-Current-URL") } func GetPromptResponse(r *http.Request) string { return r.Header.Get("HX-Prompt") } func ExtractContext(r *http.Request) *Context { return &Context{ IsHTMX: IsRequest(r), IsPartial: IsPartial(r), IsBoosted: IsBoosted(r), Target: GetTarget(r), Trigger: GetTrigger(r), TriggerID: GetTrigger(r), CurrentURL: GetCurrentURL(r), } }