1234567891011121314151617181920212223242526272829303132333435363738394041 |
- "use strict";
-
- exports.__esModule = true;
- exports.default = void 0;
-
- /**
- * Safe chained function
- *
- * Will only create a new function if needed,
- * otherwise will pass back existing functions or null.
- *
- * @param {function} functions to chain
- * @returns {function|null}
- */
- 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;
- }).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 = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
- args[_key2] = arguments[_key2];
- }
-
- acc.apply(this, args);
- f.apply(this, args);
- };
- }, null);
- }
-
- var _default = createChainedFunction;
- exports.default = _default;
- module.exports = exports["default"];
|