1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 | function createChainedFunction() {
|
11 | for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {
|
12 | funcs[_key] = arguments[_key];
|
13 | }
|
14 |
|
15 | return funcs.filter(function (f) {
|
16 | return f != null;
|
17 | }).reduce(function (acc, f) {
|
18 | if (typeof f !== 'function') {
|
19 | throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.');
|
20 | }
|
21 |
|
22 | if (acc === null) return f;
|
23 | return function chainedFunction() {
|
24 | for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
25 | args[_key2] = arguments[_key2];
|
26 | }
|
27 |
|
28 |
|
29 | acc.apply(this, args);
|
30 |
|
31 | f.apply(this, args);
|
32 | };
|
33 | }, null);
|
34 | }
|
35 |
|
36 | export default createChainedFunction; |
\ | No newline at end of file |