20 lines
289 B
Go
20 lines
289 B
Go
package middleware
|
|
|
|
import "net/http"
|
|
|
|
type Middleware func(http.Handler) http.Handler
|
|
|
|
func CompileMiddleware(h http.Handler, m []Middleware) http.Handler {
|
|
if len(m) < 1 {
|
|
return h
|
|
}
|
|
|
|
wrapped := h
|
|
|
|
for i := len(m) - 1; i >= 0; i-- {
|
|
wrapped = m[i](wrapped)
|
|
}
|
|
|
|
return wrapped
|
|
}
|