* Composes multiple middleware functions into a single middleware * @param middlewares Array of middleware functions to compose * @returns A single composed middleware function
(...middlewares: Middleware[])
| 65 | * @returns A single composed middleware function |
| 66 | */ |
| 67 | function composeMiddleware(...middlewares: Middleware[]): Middleware { |
| 68 | return (finalFetch: Fetch): Fetch => { |
| 69 | return middlewares.reduceRight( |
| 70 | (next, middleware) => middleware(next), |
| 71 | finalFetch, |
| 72 | ); |
| 73 | }; |
| 74 | } |
| 75 | |
| 76 | /** |
| 77 | * Creates a new fetch function with the given middlewares applied |