UNPKG

@lskjs/navbar

Version:

LSK ux subrepo: navbar

44 lines (38 loc) 3.18 kB
"use strict"; 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