18 lines
430 B
Go

package middleware
import "net/http"
type Middleware func(http.Handler) http.Handler
// CreateStack creates a stack of middleware handlers
func CreateStack(middlewares ...Middleware) Middleware {
return func(nextMiddleware http.Handler) http.Handler {
for i := len(middlewares) - 1; i >= 0; i-- {
currentMiddleware := middlewares[i]
nextMiddleware = currentMiddleware(nextMiddleware)
}
return nextMiddleware
}
}