middleware

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Oct 22, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package middleware provides middleware bridging from Nirvana to Huma.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Chain

func Chain(middlewares ...HumaMiddlewareFunc) func(huma.Context)

Chain creates a middleware chain from Huma middleware functions (ctx, next).

func Compose

func Compose(middlewares ...func(huma.Context)) func(huma.Context)

Compose composes multiple middleware functions (each runs in order).

func CreateNirvanaChain

func CreateNirvanaChain(humaNext func(context.Context)) definition.Chain

CreateNirvanaChain creates a Chain that wraps Huma's next function. The chain holds a default context (Background) and the given next handler.

func ExecuteMiddleware

func ExecuteMiddleware(
	middleware func(ctx context.Context, chain definition.Chain) error,
	ctx context.Context,
	chain definition.Chain,
) error

ExecuteMiddleware executes a Nirvana middleware with the given chain.

func NirvanaToHumaChain

func NirvanaToHumaChain(nirvanaChain definition.Chain, humaCtx huma.Context) func(context.Context)

NirvanaToHumaChain converts a Nirvana middleware chain to Huma format.

func UseMiddleware

func UseMiddleware(api huma.API, mw HumaMiddlewareFunc)

UseMiddleware applies a single middleware (function form) to the API.

Types

type ChainAdapter

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

ChainAdapter adapts a Huma middleware chain to accept Nirvana Chain.

func NewChainAdapter

func NewChainAdapter(ctx context.Context, next func(context.Context)) *ChainAdapter

NewChainAdapter creates a new chain adapter.

func (*ChainAdapter) Context

func (c *ChainAdapter) Context() context.Context

Context implements definition.Chain.

func (*ChainAdapter) Continue

func (c *ChainAdapter) Continue(ctx context.Context) error

Continue implements definition.Chain.

func (*ChainAdapter) ToHuma

func (c *ChainAdapter) ToHuma() func(huma.Context)

ToHuma converts a Nirvana Chain to a Huma next function.

type CommonMiddlewareConverters

type CommonMiddlewareConverters struct{}

CommonMiddlewareConverters provides common middleware conversion patterns.

func NewCommonConverters

func NewCommonConverters() *CommonMiddlewareConverters

NewCommonConverters creates a new CommonMiddlewareConverters.

func (*CommonMiddlewareConverters) AuthConverter

func (c *CommonMiddlewareConverters) AuthConverter(nirvanaMw func(ctx context.Context, chain definition.Chain) error) HumaMiddlewareFunc

AuthConverter converts a Nirvana authentication middleware to Huma.

func (*CommonMiddlewareConverters) CORSConverter

func (c *CommonMiddlewareConverters) CORSConverter(nirvanaMw func(ctx context.Context, chain definition.Chain) error) HumaMiddlewareFunc

CORSConverter converts a Nirvana CORS middleware to Huma.

func (*CommonMiddlewareConverters) LoggingConverter

func (c *CommonMiddlewareConverters) LoggingConverter(nirvanaMw func(ctx context.Context, chain definition.Chain) error) HumaMiddlewareFunc

LoggingConverter converts a Nirvana logging middleware to Huma.

func (*CommonMiddlewareConverters) RecoveryConverter

func (c *CommonMiddlewareConverters) RecoveryConverter(nirvanaMw func(ctx context.Context, chain definition.Chain) error) HumaMiddlewareFunc

RecoveryConverter converts a Nirvana recovery middleware to Huma.

type HumaMiddlewareFunc

type HumaMiddlewareFunc func(ctx huma.Context, next func(huma.Context))

HumaMiddlewareFunc is the Huma v2 middleware signature: func(ctx, next). Huma does not export a Middleware type; UseMiddleware accepts this function form.

func ConvertMiddleware

func ConvertMiddleware(mw NirvanaMiddlewareFunc, opts ...MiddlewareOption) HumaMiddlewareFunc

ConvertMiddleware converts a Nirvana middleware to a Huma middleware (function form).

func ConvertToHuma

func ConvertToHuma(mw NirvanaMiddleware, opts ...MiddlewareOption) HumaMiddlewareFunc

ConvertToHuma converts a Nirvana middleware to a Huma middleware (function form).

type HumaMiddlewareWrapper

type HumaMiddlewareWrapper struct {
	// Middleware is the original Nirvana middleware
	Middleware NirvanaMiddleware

	// Config holds conversion configuration
	Config NirvanaToHumaConfig
}

HumaMiddlewareWrapper wraps a Nirvana middleware for use with Huma.

func (*HumaMiddlewareWrapper) Wrap

func (w *HumaMiddlewareWrapper) Wrap(next func(huma.Context)) func(huma.Context)

Wrap implements the Huma middleware interface.

type MiddlewareOption

type MiddlewareOption func(*NirvanaToHumaConfig)

MiddlewareOption is a function that configures middleware conversion.

func WithName

func WithName(name string) MiddlewareOption

WithName sets the name for middleware identification.

func WithPriority

func WithPriority(priority int) MiddlewareOption

WithPriority sets the priority for middleware execution.

func WithSkipWithoutContext

func WithSkipWithoutContext() MiddlewareOption

WithSkipWithoutContext enables skipping middleware when nirvana context is unavailable.

type MiddlewareRegistry

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

MiddlewareRegistry manages middleware registration and ordering.

func NewMiddlewareRegistry

func NewMiddlewareRegistry() *MiddlewareRegistry

NewMiddlewareRegistry creates a new middleware registry.

func (*MiddlewareRegistry) Build

func (r *MiddlewareRegistry) Build(finalHandler func(huma.Context)) func(huma.Context)

Build builds the middleware chain in the correct order.

func (*MiddlewareRegistry) Middlewares

func (r *MiddlewareRegistry) Middlewares() []*HumaMiddlewareWrapper

Middlewares returns all registered middlewares.

func (*MiddlewareRegistry) Register

func (r *MiddlewareRegistry) Register(mw NirvanaMiddleware, opts ...MiddlewareOption)

Register registers a Nirvana middleware.

func (*MiddlewareRegistry) Use

func (r *MiddlewareRegistry) Use(api huma.API)

Use applies all registered middlewares to the Huma API.

type NirvanaChainBridge

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

NirvanaChainBridge bridges Nirvana and Huma middleware chains.

func NewNirvanaChainBridge

func NewNirvanaChainBridge() *NirvanaChainBridge

NewNirvanaChainBridge creates a new bridge.

func (*NirvanaChainBridge) AddHandler

func (b *NirvanaChainBridge) AddHandler(handler func(huma.Context))

AddHandler adds a Huma handler to the chain.

func (*NirvanaChainBridge) Build

func (b *NirvanaChainBridge) Build() func(huma.Context)

Build builds the final handler that executes all handlers in order.

type NirvanaMiddleware

type NirvanaMiddleware func(ctx context.Context, chain definition.Chain) error

NirvanaMiddleware represents a Nirvana middleware function.

type NirvanaMiddlewareFunc

type NirvanaMiddlewareFunc func(ctx context.Context, chain definition.Chain) error

NirvanaMiddlewareFunc is the signature for Nirvana middleware.

type NirvanaToHumaConfig

type NirvanaToHumaConfig struct {
	// Priority determines the execution order (higher = executed first)
	Priority int

	// Name is the middleware identifier
	Name string

	// SkipWithoutContext skips middleware if nirvana context is not available
	SkipWithoutContext bool
}

NirvanaToHumaConfig holds configuration for middleware conversion.

Jump to

Keyboard shortcuts

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