UNPKG

rsuite

Version:

A suite of react components

43 lines (41 loc) 1.3 kB
'use client'; "use strict"; exports.__esModule = true; exports.createChainedFunction = createChainedFunction; exports.default = void 0; /** * * Safe chained function * * Will only create a new function if needed, * otherwise will pass back existing functions or null. * * Largely copied directly from: * https://github.com/react-bootstrap/react-bootstrap/blob/master/src/utils/createChainedFunction.js * * @param {function} functions to chain * @returns {function|undefined} */ function createChainedFunction() { for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) { funcs[_key] = arguments[_key]; } return funcs.filter(function (f) { return f !== null && typeof f !== 'undefined'; }).reduce(function (acc, f) { if (typeof f !== 'function') { throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.'); } if (acc === undefined) { return f; } return function chainedFunction() { for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } acc.apply(this, args); f.apply(this, args); }; }, undefined); } var _default = exports.default = createChainedFunction;