Total Complexity | 6 |
Complexity/F | 2 |
Lines of Code | 20 |
Function Count | 3 |
Duplicated Lines | 0 |
Ratio | 0 % |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
1 | export default function applyMiddleware(applyTo, middlewares = [], options = {}, params = {}, resourceId = '', method = '') { |
||
2 | |||
3 | middlewares = [].concat(middlewares).filter(func => typeof func === 'function'); |
||
4 | |||
5 | if (!middlewares.length) { |
||
6 | return applyTo(params); |
||
7 | } |
||
8 | |||
9 | return middlewares.reduceRight((prev, middleware, index) => { |
||
10 | |||
11 | const next = index === middlewares.length - 1 |
||
12 | ? prev.bind(null, params) |
||
13 | : prev.bind(null, options, params, resourceId, method); |
||
14 | |||
15 | return index === 0 |
||
16 | ? middleware(next)(options, params, resourceId, method) |
||
17 | : middleware(next); |
||
18 | }, applyTo); |
||
19 | |||
20 | } |
||
21 |