Files
TestMesa/backend/frontend/node_modules/react-bootstrap/cjs/createChainedFunction.js
2024-12-17 13:23:11 -08:00

29 lines
803 B
JavaScript

"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(...funcs) {
return funcs.filter(f => f != null).reduce((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(...args) {
// @ts-ignore
acc.apply(this, args);
// @ts-ignore
f.apply(this, args);
};
}, null);
}
var _default = exports.default = createChainedFunction;
module.exports = exports.default;