package server

import (
	"net/http"
)

// Middleware is an HTTP middleware
type Middleware func(http.Handler) http.Handler

func Middlewares(h http.Handler, m ...Middleware) http.Handler {
	if len(m) < 1 {
		return h
	}
	wrapped := h
	// loop in reverse to preserve middleware order
	for i := len(m) - 1; i >= 0; i-- {
		wrapped = m[i](wrapped)
	}
	return wrapped
}
