UNPKG

@mariocadenas/async-dispatcher

Version:

Higher Order Component to easily manage asynchronous redux actions.

2 lines (1 loc) 10.3 kB
"use strict";function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),React__default=_interopDefault(React);function asyncGeneratorStep(e,t,r,n,o,a,c){try{var s=e[a](c),i=s.value}catch(e){return void r(e)}s.done?t(i):Promise.resolve(i).then(n,o)}function _asyncToGenerator(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var a=e.apply(t,r);function c(e){asyncGeneratorStep(a,n,o,c,s,"next",e)}function s(e){asyncGeneratorStep(a,n,o,c,s,"throw",e)}c(void 0)})}}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _extends(){return(_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(r,!0).forEach(function(t){_defineProperty(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(r).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArrayLimit(e,t){var r=[],n=!0,o=!1,a=void 0;try{for(var c,s=e[Symbol.iterator]();!(n=(c=s.next()).done)&&(r.push(c.value),!t||r.length!==t);n=!0);}catch(e){o=!0,a=e}finally{try{n||null==s.return||s.return()}finally{if(o)throw a}}return r}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function unwrapExports(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function createCommonjsModule(e,t){return e(t={exports:{}},t.exports),t.exports}var reactIs_development=createCommonjsModule(function(e,t){!function(){Object.defineProperty(t,"__esModule",{value:!0});var e="function"==typeof Symbol&&Symbol.for,r=e?Symbol.for("react.element"):60103,n=e?Symbol.for("react.portal"):60106,o=e?Symbol.for("react.fragment"):60107,a=e?Symbol.for("react.strict_mode"):60108,c=e?Symbol.for("react.profiler"):60114,s=e?Symbol.for("react.provider"):60109,i=e?Symbol.for("react.context"):60110,p=e?Symbol.for("react.async_mode"):60111,l=e?Symbol.for("react.concurrent_mode"):60111,u=e?Symbol.for("react.forward_ref"):60112,f=e?Symbol.for("react.suspense"):60113,d=e?Symbol.for("react.suspense_list"):60120,m=e?Symbol.for("react.memo"):60115,y=e?Symbol.for("react.lazy"):60116,_=e?Symbol.for("react.fundamental"):60117,v=e?Symbol.for("react.responder"):60118;var I=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var o=0,a="Warning: "+e.replace(/%s/g,function(){return r[o++]});"undefined"!=typeof console&&console.warn(a);try{throw new Error(a)}catch(e){}},h=function(e,t){if(void 0===t)throw new Error("`lowPriorityWarning(condition, format, ...args)` requires a warning message argument");if(!e){for(var r=arguments.length,n=Array(r>2?r-2:0),o=2;o<r;o++)n[o-2]=arguments[o];I.apply(void 0,[t].concat(n))}};function S(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:var d=e.type;switch(d){case p:case l:case o:case c:case a:case f:return d;default:var _=d&&d.$$typeof;switch(_){case i:case u:case s:return _;default:return t}}case y:case m:case n:return t}}}var b=p,g=l,P=i,w=s,O=r,T=u,C=o,j=y,R=m,A=n,x=c,E=a,M=f,$=!1;function D(e){return S(e)===l}t.typeOf=S,t.AsyncMode=b,t.ConcurrentMode=g,t.ContextConsumer=P,t.ContextProvider=w,t.Element=O,t.ForwardRef=T,t.Fragment=C,t.Lazy=j,t.Memo=R,t.Portal=A,t.Profiler=x,t.StrictMode=E,t.Suspense=M,t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===l||e===c||e===a||e===f||e===d||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===m||e.$$typeof===s||e.$$typeof===i||e.$$typeof===u||e.$$typeof===_||e.$$typeof===v)},t.isAsyncMode=function(e){return $||($=!0,h(!1,"The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),D(e)||S(e)===p},t.isConcurrentMode=D,t.isContextConsumer=function(e){return S(e)===i},t.isContextProvider=function(e){return S(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return S(e)===u},t.isFragment=function(e){return S(e)===o},t.isLazy=function(e){return S(e)===y},t.isMemo=function(e){return S(e)===m},t.isPortal=function(e){return S(e)===n},t.isProfiler=function(e){return S(e)===c},t.isStrictMode=function(e){return S(e)===a},t.isSuspense=function(e){return S(e)===f}}()});unwrapExports(reactIs_development);var reactIs_development_1=reactIs_development.typeOf,reactIs_development_2=reactIs_development.AsyncMode,reactIs_development_3=reactIs_development.ConcurrentMode,reactIs_development_4=reactIs_development.ContextConsumer,reactIs_development_5=reactIs_development.ContextProvider,reactIs_development_6=reactIs_development.Element,reactIs_development_7=reactIs_development.ForwardRef,reactIs_development_8=reactIs_development.Fragment,reactIs_development_9=reactIs_development.Lazy,reactIs_development_10=reactIs_development.Memo,reactIs_development_11=reactIs_development.Portal,reactIs_development_12=reactIs_development.Profiler,reactIs_development_13=reactIs_development.StrictMode,reactIs_development_14=reactIs_development.Suspense,reactIs_development_15=reactIs_development.isValidElementType,reactIs_development_16=reactIs_development.isAsyncMode,reactIs_development_17=reactIs_development.isConcurrentMode,reactIs_development_18=reactIs_development.isContextConsumer,reactIs_development_19=reactIs_development.isContextProvider,reactIs_development_20=reactIs_development.isElement,reactIs_development_21=reactIs_development.isForwardRef,reactIs_development_22=reactIs_development.isFragment,reactIs_development_23=reactIs_development.isLazy,reactIs_development_24=reactIs_development.isMemo,reactIs_development_25=reactIs_development.isPortal,reactIs_development_26=reactIs_development.isProfiler,reactIs_development_27=reactIs_development.isStrictMode,reactIs_development_28=reactIs_development.isSuspense,reactIs=createCommonjsModule(function(e){e.exports=reactIs_development}),REACT_STATICS={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},KNOWN_STATICS={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},FORWARD_REF_STATICS={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},MEMO_STATICS={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},TYPE_STATICS={};function getStatics(e){return reactIs.isMemo(e)?MEMO_STATICS:TYPE_STATICS[e.$$typeof]||REACT_STATICS}TYPE_STATICS[reactIs.ForwardRef]=FORWARD_REF_STATICS;var defineProperty=Object.defineProperty,getOwnPropertyNames=Object.getOwnPropertyNames,getOwnPropertySymbols=Object.getOwnPropertySymbols,getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,getPrototypeOf=Object.getPrototypeOf,objectPrototype=Object.prototype;function hoistNonReactStatics(e,t,r){if("string"!=typeof t){if(objectPrototype){var n=getPrototypeOf(t);n&&n!==objectPrototype&&hoistNonReactStatics(e,n,r)}var o=getOwnPropertyNames(t);getOwnPropertySymbols&&(o=o.concat(getOwnPropertySymbols(t)));for(var a=getStatics(e),c=getStatics(t),s=0;s<o.length;++s){var i=o[s];if(!(KNOWN_STATICS[i]||r&&r[i]||c&&c[i]||a&&a[i])){var p=getOwnPropertyDescriptor(t,i);try{defineProperty(e,i,p)}catch(e){}}}return e}return e}var hoistNonReactStatics_cjs=hoistNonReactStatics,Cache={storage:new Set,contains:function(e){return this.storage.has(e)},cacheActions:function(e){var t=this;return e.forEach(function(e){return t.storage.add(e)}),this.storage},removeAction:function(e){return this.storage.delete(e)}},isTestingEnvironment=!1;function asyncDispatcher(e){var t=e.actions;return function(r){var n=function(n){var o=_slicedToArray(React.useState(!0),2),a=o[0],c=o[1],s=_slicedToArray(React.useState(null),2),i=s[0],p=s[1],l=t.filter(function(e){return!Cache.contains(e)});if(Cache.cacheActions(t),React.useEffect(function(){function e(){return(e=_asyncToGenerator(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,t=l.map(function(){var e=_asyncToGenerator(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",asyncDispatcher.dispatch(t()));case 1:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}()),e.next=4,Promise.all(t);case 4:c(!1),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),p(e.t0);case 10:case"end":return e.stop()}},e,null,[[0,7]])}))).apply(this,arguments)}!function(){e.apply(this,arguments)}()},[c,p]),a&&!i)return e.loading();if(i)return e.error(i);var u=mapDispatchToProps(t,asyncDispatcher.dispatch);return React__default.createElement(r,_extends({loading:a,error:i},u,n))};return n.displayName="asyncConnected(".concat(r.displayName||r.name,")"),hoistNonReactStatics_cjs(n,r),n}}var mapDispatchToProps=function(e,t){return e.reduce(function(e,r){return _objectSpread2({},e,_defineProperty({},r.name,function(){return t(r())}))},{})},validator=function(){throw new Error("You should pass a valid store object.")},configureDispatcher=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.dispatch,r=void 0===t?validator():t;return Object.defineProperty(asyncDispatcher,"dispatch",{value:r,writable:isTestingEnvironment,configurable:isTestingEnvironment})};exports.configureDispatcher=configureDispatcher,exports.default=asyncDispatcher;