UNPKG

1.09 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = createChainedFunction;
7
8/**
9 * Safe chained function
10 *
11 * Will only create a new function if needed,
12 * otherwise will pass back existing functions or null.
13 *
14 * @param {function} functions to chain
15 * @returns {function|null}
16 */
17function createChainedFunction() {
18 for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {
19 funcs[_key] = arguments[_key];
20 }
21
22 return funcs.reduce(function (acc, func) {
23 if (func == null) {
24 return acc;
25 }
26
27 if (process.env.NODE_ENV !== 'production') {
28 if (typeof func !== 'function') {
29 console.error('Material-UI: invalid Argument Type, must only provide functions, undefined, or null.');
30 }
31 }
32
33 return function chainedFunction() {
34 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
35 args[_key2] = arguments[_key2];
36 }
37
38 acc.apply(this, args);
39 func.apply(this, args);
40 };
41 }, function () {});
42}
\No newline at end of file