connector

package
v0.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 1, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const (
	InteractionAsync    InteractionKind = "async"
	InteractionReveal   InteractionKind = "reveal"
	InteractionPoll     InteractionKind = "poll"
	InteractionStream   InteractionKind = "stream"
	InteractionPrefetch InteractionKind = "prefetch"
	InteractionRefresh  InteractionKind = "refresh"
	InteractionOn       InteractionKind = "on"

	HeaderTarget HeaderKey = "X-Target"
	HeaderSelect HeaderKey = "X-Select"
	HeaderAction HeaderKey = "X-Action"

	HeaderLocation           HeaderKey = "X-Location"
	HeaderPushURL            HeaderKey = "X-Push-Url"
	HeaderRedirect           HeaderKey = "X-Redirect"
	HeaderRefresh            HeaderKey = "X-Refresh"
	HeaderReplaceURL         HeaderKey = "X-Replace-Url"
	HeaderReswap             HeaderKey = "X-Reswap"
	HeaderRetarget           HeaderKey = "X-Retarget"
	HeaderReselect           HeaderKey = "X-Reselect"
	HeaderTrigger            HeaderKey = "X-Trigger"
	HeaderTriggerAfterSettle HeaderKey = "X-Trigger-After-Settle"
	HeaderTriggerAfterSwap   HeaderKey = "X-Trigger-After-Swap"
)
View Source
const (
	SwapModifierSwap        = "swap"
	SwapModifierSettle      = "settle"
	SwapModifierTransition  = "transition"
	SwapModifierIgnoreTitle = "ignoreTitle"
	SwapModifierFocusScroll = "focus-scroll"
	SwapModifierScroll      = "scroll"
	SwapModifierShow        = "show"
)
View Source
const (
	TurboHeaderTarget HeaderKey = "Turbo-Frame"
	TurboHeaderSelect HeaderKey = "Turbo-Select"
	TurboHeaderAction HeaderKey = "Turbo-Action"

	TurboAttrFrameID = "id"
	TurboAttrSource  = "src"
	TurboAttrLoading = "loading"
)
View Source
const (
	UnpolyHeaderTarget HeaderKey = "X-Up-Target"
	UnpolyHeaderSelect HeaderKey = "X-Up-Select"
	UnpolyHeaderAction HeaderKey = "X-Up-Action"

	UnpolyAttrGet     = "up-get"
	UnpolyAttrTrigger = "up-trigger"
	UnpolyAttrTarget  = "up-target"
)

Variables

This section is empty.

Functions

func ApplyHeaders added in v0.9.0

func ApplyHeaders(headers http.Header, values map[string]string)

Types

type Config

type Config struct {
	UseURLQuery bool
}

type Connector

type Connector interface {
	RenderPartial(r *http.Request) bool
	GetTargetValue(r *http.Request) string
	GetSelectValue(r *http.Request) string
	GetActionValue(r *http.Request) string

	GetTargetHeader() string
	GetSelectHeader() string
	GetActionHeader() string
	InteractionAttrs(interaction Interaction) map[string]string
	ResponseHeaders(response Response) map[string]string
}

func NewHTMX

func NewHTMX(c *Config) Connector

func NewPartial

func NewPartial(c *Config) Connector

func NewTurbo

func NewTurbo(c *Config) Connector

func NewUnpoly

func NewUnpoly(c *Config) Connector

type HTMX

type HTMX struct {
	// contains filtered or unexported fields
}

func (*HTMX) GetActionHeader

func (x *HTMX) GetActionHeader() string

func (*HTMX) GetActionValue

func (x *HTMX) GetActionValue(r *http.Request) string

func (*HTMX) GetSelectHeader

func (x *HTMX) GetSelectHeader() string

func (*HTMX) GetSelectValue

func (x *HTMX) GetSelectValue(r *http.Request) string

func (*HTMX) GetTargetHeader

func (x *HTMX) GetTargetHeader() string

func (*HTMX) GetTargetValue

func (x *HTMX) GetTargetValue(r *http.Request) string

func (*HTMX) InteractionAttrs added in v0.9.0

func (h *HTMX) InteractionAttrs(interaction Interaction) map[string]string

func (*HTMX) RenderPartial

func (h *HTMX) RenderPartial(r *http.Request) bool

func (*HTMX) ResponseHeaders added in v0.9.0

func (h *HTMX) ResponseHeaders(response Response) map[string]string

type HeaderKey added in v0.9.0

type HeaderKey string
const (
	HTMXHeaderBoosted               HeaderKey = "HX-Boosted"
	HTMXHeaderCurrentURL            HeaderKey = "HX-Current-URL"
	HTMXHeaderHistoryRestoreRequest HeaderKey = "HX-History-Restore-Request"
	HTMXHeaderPrompt                HeaderKey = "HX-Prompt"
	HTMXHeaderRequest               HeaderKey = "HX-Request"
	HTMXHeaderTarget                HeaderKey = "HX-Target"
	HTMXHeaderTriggerName           HeaderKey = "HX-Trigger-Name"
	HTMXHeaderTriggerRequest        HeaderKey = "HX-Trigger"

	HTMXHeaderLocation           HeaderKey = "HX-Location"
	HTMXHeaderPushURL            HeaderKey = "HX-Push-Url"
	HTMXHeaderRedirect           HeaderKey = "HX-Redirect"
	HTMXHeaderRefresh            HeaderKey = "HX-Refresh"
	HTMXHeaderReplaceURL         HeaderKey = "HX-Replace-Url"
	HTMXHeaderReswap             HeaderKey = "HX-Reswap"
	HTMXHeaderRetarget           HeaderKey = "HX-Retarget"
	HTMXHeaderReselect           HeaderKey = "HX-Reselect"
	HTMXHeaderTrigger            HeaderKey = "HX-Trigger"
	HTMXHeaderTriggerAfterSettle HeaderKey = "HX-Trigger-After-Settle"
	HTMXHeaderTriggerAfterSwap   HeaderKey = "HX-Trigger-After-Swap"

	HTMXAttrGet        = "hx-get"
	HTMXAttrExt        = "hx-ext"
	HTMXAttrTrigger    = "hx-trigger"
	HTMXAttrTarget     = "hx-target"
	HTMXAttrSwap       = "hx-swap"
	HTMXAttrSSEConnect = "sse-connect"
	HTMXAttrSSESwap    = "sse-swap"
)

func (HeaderKey) String added in v0.9.0

func (h HeaderKey) String() string

type Interaction added in v0.9.0

type Interaction struct {
	Kind        InteractionKind
	ID          string
	URL         string
	Target      string
	Swap        string
	Trigger     string
	Interval    string
	Placeholder string
	Name        string
	Params      map[string]string
	Options     map[string]string
}

type InteractionKind added in v0.9.0

type InteractionKind string

type Partial

type Partial struct {
	// contains filtered or unexported fields
}

func (*Partial) GetActionHeader

func (x *Partial) GetActionHeader() string

func (*Partial) GetActionValue

func (x *Partial) GetActionValue(r *http.Request) string

func (*Partial) GetSelectHeader

func (x *Partial) GetSelectHeader() string

func (*Partial) GetSelectValue

func (x *Partial) GetSelectValue(r *http.Request) string

func (*Partial) GetTargetHeader

func (x *Partial) GetTargetHeader() string

func (*Partial) GetTargetValue

func (x *Partial) GetTargetValue(r *http.Request) string

func (*Partial) InteractionAttrs added in v0.9.0

func (x *Partial) InteractionAttrs(interaction Interaction) map[string]string

func (*Partial) RenderPartial

func (x *Partial) RenderPartial(r *http.Request) bool

func (*Partial) ResponseHeaders added in v0.9.0

func (x *Partial) ResponseHeaders(response Response) map[string]string

type Response added in v0.9.0

type Response struct {
	Location           string
	PushURL            string
	Redirect           string
	Refresh            *bool
	ReplaceURL         string
	Reswap             string
	Retarget           string
	Reselect           string
	Trigger            string
	TriggerAfterSettle string
	TriggerAfterSwap   string
}

type ResponseBuilder added in v0.9.0

type ResponseBuilder struct {
	// contains filtered or unexported fields
}

ResponseBuilder mutates a Response through fluent methods.

It is intended for single-goroutine request/configuration use. Do not share a builder across goroutines without external synchronization.

func NewResponseBuilder added in v0.9.0

func NewResponseBuilder(response *Response) *ResponseBuilder

func (*ResponseBuilder) Location added in v0.9.0

func (b *ResponseBuilder) Location(value string) *ResponseBuilder

func (*ResponseBuilder) PushURL added in v0.9.0

func (b *ResponseBuilder) PushURL(value string) *ResponseBuilder

func (*ResponseBuilder) Redirect added in v0.9.0

func (b *ResponseBuilder) Redirect(value string) *ResponseBuilder

func (*ResponseBuilder) Refresh added in v0.9.0

func (b *ResponseBuilder) Refresh(value bool) *ResponseBuilder

func (*ResponseBuilder) ReplaceURL added in v0.9.0

func (b *ResponseBuilder) ReplaceURL(value string) *ResponseBuilder

func (*ResponseBuilder) Reselect added in v0.9.0

func (b *ResponseBuilder) Reselect(value string) *ResponseBuilder

func (*ResponseBuilder) Reswap added in v0.9.0

func (b *ResponseBuilder) Reswap(value string) *ResponseBuilder

func (*ResponseBuilder) ReswapWith added in v0.9.0

func (b *ResponseBuilder) ReswapWith(swap *Swap) *ResponseBuilder

func (*ResponseBuilder) Retarget added in v0.9.0

func (b *ResponseBuilder) Retarget(value string) *ResponseBuilder

func (*ResponseBuilder) Trigger added in v0.9.0

func (b *ResponseBuilder) Trigger(value string) *ResponseBuilder

func (*ResponseBuilder) TriggerAfterSettle added in v0.9.0

func (b *ResponseBuilder) TriggerAfterSettle(value string) *ResponseBuilder

func (*ResponseBuilder) TriggerAfterSettleWith added in v0.9.0

func (b *ResponseBuilder) TriggerAfterSettleWith(trigger *Trigger) *ResponseBuilder

func (*ResponseBuilder) TriggerAfterSwap added in v0.9.0

func (b *ResponseBuilder) TriggerAfterSwap(value string) *ResponseBuilder

func (*ResponseBuilder) TriggerAfterSwapWith added in v0.9.0

func (b *ResponseBuilder) TriggerAfterSwapWith(trigger *Trigger) *ResponseBuilder

func (*ResponseBuilder) TriggerWith added in v0.9.0

func (b *ResponseBuilder) TriggerWith(trigger *Trigger) *ResponseBuilder

func (*ResponseBuilder) Value added in v0.9.0

func (b *ResponseBuilder) Value() Response

type Swap added in v0.9.0

type Swap struct {
	// contains filtered or unexported fields
}

Swap builds an HTMX-compatible swap header value.

Swap is mutable and is not safe for concurrent mutation.

func NewSwap added in v0.9.0

func NewSwap() *Swap

func (*Swap) FocusScroll added in v0.9.0

func (s *Swap) FocusScroll(enabled bool) *Swap

func (*Swap) IgnoreTitle added in v0.9.0

func (s *Swap) IgnoreTitle(enabled bool) *Swap

func (*Swap) Scroll added in v0.9.0

func (s *Swap) Scroll(target, direction string) *Swap

func (*Swap) Settle added in v0.9.0

func (s *Swap) Settle(duration time.Duration) *Swap

func (*Swap) Show added in v0.9.0

func (s *Swap) Show(target, direction string) *Swap

func (*Swap) String added in v0.9.0

func (s *Swap) String() string

func (*Swap) Style added in v0.9.0

func (s *Swap) Style(style SwapStyle) *Swap

func (*Swap) Swap added in v0.9.0

func (s *Swap) Swap(duration time.Duration) *Swap

func (*Swap) Transition added in v0.9.0

func (s *Swap) Transition(enabled bool) *Swap

type SwapStyle added in v0.9.0

type SwapStyle string
const (
	SwapInnerHTML   SwapStyle = "innerHTML"
	SwapOuterHTML   SwapStyle = "outerHTML"
	SwapBeforeBegin SwapStyle = "beforebegin"
	SwapAfterBegin  SwapStyle = "afterbegin"
	SwapBeforeEnd   SwapStyle = "beforeend"
	SwapAfterEnd    SwapStyle = "afterend"
	SwapDelete      SwapStyle = "delete"
	SwapNone        SwapStyle = "none"
)

type Trigger added in v0.9.0

type Trigger struct {
	// contains filtered or unexported fields
}

Trigger builds an HTMX-compatible trigger header value.

Trigger is mutable and is not safe for concurrent mutation.

func NewTrigger added in v0.9.0

func NewTrigger() *Trigger

func (*Trigger) AddEvent added in v0.9.0

func (t *Trigger) AddEvent(event string) *Trigger

func (*Trigger) AddEventDetailed added in v0.9.0

func (t *Trigger) AddEventDetailed(event, message string) *Trigger

func (*Trigger) AddEventObject added in v0.9.0

func (t *Trigger) AddEventObject(event string, details map[string]any) *Trigger

func (*Trigger) String added in v0.9.0

func (t *Trigger) String() string

type Turbo

type Turbo struct {
	// contains filtered or unexported fields
}

func (*Turbo) GetActionHeader

func (x *Turbo) GetActionHeader() string

func (*Turbo) GetActionValue

func (x *Turbo) GetActionValue(r *http.Request) string

func (*Turbo) GetSelectHeader

func (x *Turbo) GetSelectHeader() string

func (*Turbo) GetSelectValue

func (x *Turbo) GetSelectValue(r *http.Request) string

func (*Turbo) GetTargetHeader

func (x *Turbo) GetTargetHeader() string

func (*Turbo) GetTargetValue

func (x *Turbo) GetTargetValue(r *http.Request) string

func (*Turbo) InteractionAttrs added in v0.9.0

func (t *Turbo) InteractionAttrs(interaction Interaction) map[string]string

func (*Turbo) RenderPartial

func (x *Turbo) RenderPartial(r *http.Request) bool

func (*Turbo) ResponseHeaders added in v0.9.0

func (x *Turbo) ResponseHeaders(response Response) map[string]string

type Unpoly

type Unpoly struct {
	// contains filtered or unexported fields
}

func (*Unpoly) GetActionHeader

func (x *Unpoly) GetActionHeader() string

func (*Unpoly) GetActionValue

func (x *Unpoly) GetActionValue(r *http.Request) string

func (*Unpoly) GetSelectHeader

func (x *Unpoly) GetSelectHeader() string

func (*Unpoly) GetSelectValue

func (x *Unpoly) GetSelectValue(r *http.Request) string

func (*Unpoly) GetTargetHeader

func (x *Unpoly) GetTargetHeader() string

func (*Unpoly) GetTargetValue

func (x *Unpoly) GetTargetValue(r *http.Request) string

func (*Unpoly) InteractionAttrs added in v0.9.0

func (u *Unpoly) InteractionAttrs(interaction Interaction) map[string]string

func (*Unpoly) RenderPartial

func (u *Unpoly) RenderPartial(r *http.Request) bool

func (*Unpoly) ResponseHeaders added in v0.9.0

func (x *Unpoly) ResponseHeaders(response Response) map[string]string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL