@lskjs/navbar
Version:
LSK ux subrepo: navbar
44 lines (38 loc) • 3.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: 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;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVDaGFpbmVkRnVuY3Rpb24uanMiXSwibmFtZXMiOlsiY3JlYXRlQ2hhaW5lZEZ1bmN0aW9uIiwiZnVuY3MiLCJmaWx0ZXIiLCJmIiwicmVkdWNlIiwiYWNjIiwiRXJyb3IiLCJjaGFpbmVkRnVuY3Rpb24iLCJhcmdzIiwiYXBwbHkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7Ozs7Ozs7O0FBU0EsU0FBU0EscUJBQVQsR0FBeUM7QUFBQSxvQ0FBUEMsS0FBTztBQUFQQSxJQUFBQSxLQUFPO0FBQUE7O0FBQ3ZDLFNBQU9BLEtBQUssQ0FDVEMsTUFESSxDQUNHLFVBQUFDLENBQUM7QUFBQSxXQUFJQSxDQUFDLElBQUksSUFBVDtBQUFBLEdBREosRUFFSkMsTUFGSSxDQUVHLFVBQUNDLEdBQUQsRUFBTUYsQ0FBTixFQUFZO0FBQ2xCLFFBQUksT0FBT0EsQ0FBUCxLQUFhLFVBQWpCLEVBQTZCO0FBQzNCLFlBQU0sSUFBSUcsS0FBSixDQUNKLHlFQURJLENBQU47QUFHRDs7QUFFRCxRQUFJRCxHQUFHLEtBQUssSUFBWixFQUFrQixPQUFPRixDQUFQO0FBRWxCLFdBQU8sU0FBU0ksZUFBVCxHQUFrQztBQUFBLHlDQUFOQyxJQUFNO0FBQU5BLFFBQUFBLElBQU07QUFBQTs7QUFDdkNILE1BQUFBLEdBQUcsQ0FBQ0ksS0FBSixDQUFVLElBQVYsRUFBZ0JELElBQWhCO0FBQ0FMLE1BQUFBLENBQUMsQ0FBQ00sS0FBRixDQUFRLElBQVIsRUFBY0QsSUFBZDtBQUNELEtBSEQ7QUFJRCxHQWZJLEVBZUYsSUFmRSxDQUFQO0FBZ0JEOztlQUVjUixxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2FmZSBjaGFpbmVkIGZ1bmN0aW9uXG4gKlxuICogV2lsbCBvbmx5IGNyZWF0ZSBhIG5ldyBmdW5jdGlvbiBpZiBuZWVkZWQsXG4gKiBvdGhlcndpc2Ugd2lsbCBwYXNzIGJhY2sgZXhpc3RpbmcgZnVuY3Rpb25zIG9yIG51bGwuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gZnVuY3Rpb25zIHRvIGNoYWluXG4gKiBAcmV0dXJucyB7ZnVuY3Rpb258bnVsbH1cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQ2hhaW5lZEZ1bmN0aW9uKC4uLmZ1bmNzKSB7XG4gIHJldHVybiBmdW5jc1xuICAgIC5maWx0ZXIoZiA9PiBmICE9IG51bGwpXG4gICAgLnJlZHVjZSgoYWNjLCBmKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGYgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdJbnZhbGlkIEFyZ3VtZW50IFR5cGUsIG11c3Qgb25seSBwcm92aWRlIGZ1bmN0aW9ucywgdW5kZWZpbmVkLCBvciBudWxsLicsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhY2MgPT09IG51bGwpIHJldHVybiBmO1xuXG4gICAgICByZXR1cm4gZnVuY3Rpb24gY2hhaW5lZEZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICAgICAgYWNjLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICBmLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgfTtcbiAgICB9LCBudWxsKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlQ2hhaW5lZEZ1bmN0aW9uO1xuIl19
//# sourceMappingURL=createChainedFunction.js.map