18 lines
430 B
Go
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
|
|
}
|
|
}
|