Skip to content

Commit 08db4bd

Browse files
hemachandarvvishr
authored andcommitted
simplify middleware chain creation (#1299)
1 parent 775b2ee commit 08db4bd

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

echo.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -575,21 +575,15 @@ func (e *Echo) ServeHTTP(w http.ResponseWriter, r *http.Request) {
575575
if e.premiddleware == nil {
576576
e.router.Find(r.Method, getPath(r), c)
577577
h = c.Handler()
578-
for i := len(e.middleware) - 1; i >= 0; i-- {
579-
h = e.middleware[i](h)
580-
}
578+
h = applyMiddleware(h, e.middleware...)
581579
} else {
582580
h = func(c Context) error {
583581
e.router.Find(r.Method, getPath(r), c)
584582
h := c.Handler()
585-
for i := len(e.middleware) - 1; i >= 0; i-- {
586-
h = e.middleware[i](h)
587-
}
583+
h = applyMiddleware(h, e.middleware...)
588584
return h(c)
589585
}
590-
for i := len(e.premiddleware) - 1; i >= 0; i-- {
591-
h = e.premiddleware[i](h)
592-
}
586+
h = applyMiddleware(h, e.premiddleware...)
593587
}
594588

595589
// Execute chain
@@ -804,3 +798,10 @@ func newListener(address string) (*tcpKeepAliveListener, error) {
804798
}
805799
return &tcpKeepAliveListener{l.(*net.TCPListener)}, nil
806800
}
801+
802+
func applyMiddleware(h HandlerFunc, middleware ...MiddlewareFunc) HandlerFunc {
803+
for i := len(middleware) - 1; i >= 0; i-- {
804+
h = middleware[i](h)
805+
}
806+
return h
807+
}

0 commit comments

Comments
 (0)