1 | export var compose = function () {
|
2 | var functions = [];
|
3 | for (var _i = 0; _i < arguments.length; _i++) {
|
4 | functions[_i - 0] = arguments[_i];
|
5 | }
|
6 | return function (arg) {
|
7 | if (functions.length === 0) {
|
8 | return arg;
|
9 | }
|
10 | var last = functions[functions.length - 1];
|
11 | var rest = functions.slice(0, -1);
|
12 | return rest.reduceRight(function (composed, fn) { return fn(composed); }, last(arg));
|
13 | };
|
14 | };
|