@@ -2,6 +2,7 @@ package execution
22
33import (
44 "context"
5+ "slices"
56
67 "github.com/riverqueue/river/rivertype"
78)
@@ -22,17 +23,17 @@ func MiddlewareChain(globalMiddleware []rivertype.Middleware, workerMiddleware [
2223
2324 // Wrap middlewares in reverse order so the one defined first is wrapped
2425 // as the outermost function and is first to receive the operation.
25- for i := len (globalMiddleware ) - 1 ; i >= 0 ; i -- {
26- middlewareItem := globalMiddleware [ i ] .(rivertype.WorkerMiddleware ) //nolint:forcetypeassert // capture the current middleware item
27- previousDoInner := doInner // capture the current doInner function
26+ for _ , v := range slices . Backward (globalMiddleware ) {
27+ middlewareItem := v .(rivertype.WorkerMiddleware ) //nolint:forcetypeassert // capture the current middleware item
28+ previousDoInner := doInner // capture the current doInner function
2829 doInner = func (ctx context.Context ) error {
2930 return middlewareItem .Work (ctx , jobRow , previousDoInner )
3031 }
3132 }
3233
33- for i := len (workerMiddleware ) - 1 ; i >= 0 ; i -- {
34- middlewareItem := workerMiddleware [ i ] // capture the current middleware item
35- previousDoInner := doInner // capture the current doInner function
34+ for _ , v := range slices . Backward (workerMiddleware ) {
35+ middlewareItem := v // capture the current middleware item
36+ previousDoInner := doInner // capture the current doInner function
3637 doInner = func (ctx context.Context ) error {
3738 return middlewareItem .Work (ctx , jobRow , previousDoInner )
3839 }
0 commit comments