34 lines
895 B
JavaScript
34 lines
895 B
JavaScript
'use strict';
|
|
|
|
exports.__esModule = true;
|
|
/**
|
|
* This source code is quoted from rc-util.
|
|
* homepage: https://github.com/react-component/util
|
|
*/
|
|
function createChainedFunction() {
|
|
for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {
|
|
funcs[_key] = arguments[_key];
|
|
}
|
|
|
|
return funcs.filter(function (f) {
|
|
return f != null;
|
|
}).reduce(function (acc, f) {
|
|
if (typeof f !== 'function') {
|
|
throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.');
|
|
}
|
|
|
|
if (acc === null) {
|
|
return f;
|
|
}
|
|
|
|
return function chainedFunction() {
|
|
for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
args[_key2] = arguments[_key2];
|
|
}
|
|
|
|
acc.apply(this, args);
|
|
f.apply(this, args);
|
|
};
|
|
}, null);
|
|
}
|
|
exports.default = createChainedFunction; |