easy-soft-dva 3.6.4 → 3.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1,2048 @@
1
- import{a as e,_ as n,b as t,c as r}from"../regeneratorRuntime.js";import a from"invariant";import{connect as o,Provider as c}from"react-redux";import{combineReducers as u}from"redux";import i from"redux-saga";import*as s from"redux-saga";export{s as saga};import{isPlainObject as f}from"is-plain-object";import l from"flatten";import{configureStore as p}from"@reduxjs/toolkit";import d from"warning";function v(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function y(e,n){if(e){if("string"==typeof e)return v(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?v(e,n):void 0}}function h(e,n){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=y(e))||n&&e&&"number"==typeof e.length){t&&(e=t);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,c=!0,u=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return c=e.done,e},e:function(e){u=!0,o=e},f:function(){try{c||null==t.return||t.return()}finally{if(u)throw o}}}}var m=Array.isArray.bind(Array),g=function(e){return"function"==typeof e},b=function(e){return e},E=function(){},w=function(e,n){for(var t=0,r=e.length;t<r;t+=1)if(n(e[t],t))return t;return-1},x=Object.freeze({__proto__:null,findIndex:w,isArray:m,isFunction:g,isPlainObject:f,noop:E,returnSelf:b});function _(n,t){var r,o=n.namespace,c=n.reducers,u=n.effects,i=n.subscriptions;a(o,"[app.model] namespace should be defined"),a("string"==typeof o,"[app.model] namespace should be string, but got ".concat(e(o))),a(!t.some((function(e){return e.namespace===o})),"[app.model] namespace should be unique"),c&&(a(f(c)||m(c),"[app.model] reducers should be plain object or array, but got ".concat(e(c))),a(!m(c)||f(c[0])&&g(c[1]),"[app.model] reducers with array should be [Object, Function]")),u&&a(f(u),"[app.model] effects should be plain object, but got ".concat(e(u))),i&&(a(f(i),"[app.model] subscriptions should be plain object, but got ".concat(e(i))),a((r=i,Object.keys(r).every((function(e){return g(r[e])}))),"[app.model] subscription should be function"))}function k(e){if(Array.isArray(e))return e}function A(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function O(e,n){return k(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,a,o,c,u=[],i=!0,s=!1;try{if(o=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;i=!1}else for(;!(i=(r=o.call(t)).done)&&(u.push(r.value),u.length!==n);i=!0);}catch(e){s=!0,a=e}finally{try{if(!i&&null!=t.return&&(c=t.return(),Object(c)!==c))return}finally{if(s)throw a}}return u}}(e,n)||y(e,n)||A()}var N="/";function S(e){return function(){return function(t){return function(r){return function(n){if(!n||"string"!=typeof n)return!1;var t=n.split(N),r=O(t,1)[0],a=e._models.filter((function(e){return e.namespace===r}))[0];if(a&&a.effects&&a.effects[n])return!0;return!1}(r.type)?new Promise((function(e,a){t(n({__dva_resolve:e,__dva_reject:a},r))})):t(r)}}}}function C(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function j(e){return function(e){if(Array.isArray(e))return v(e)}(e)||C(e)||y(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function q(n){var t=n.reducers,r=n.initialState,o=n.plugin,c=n.sagaMiddleware,u=n.promiseMiddleware,i=n.createOpts.setupMiddleWares,s=void 0===i?b:i,f=o.get("extraEnhancers");a(m(f),"[app.start] extraEnhancers should be array, but got ".concat(e(f)));var d=o.get("onAction"),v=s([u,c].concat(j(l(d))));return p({reducer:t,preloadedState:r,middleware:v,enhancers:f})}function T(e){return e}function L(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return function(e,t){return n.reduce((function(e,n){return n(e,t)}),e)}}function D(e,n,t){var r=Object.keys(e).map((function(n){return function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:T,t=arguments.length>2?arguments[2]:void 0;return function(r,o){var c=o.type;return a(c,"dispatch: action should be a plain Object with type"),e===c?n(r,o,t):r}}(n,e[n],t)})),o=L.apply(void 0,j(r));return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n,r=arguments.length>1?arguments[1]:void 0;return o(e,r,t)}}function R(e,n,t,r){return Array.isArray(e)?e[1]((t||D)(e[0],n,r)):(t||D)(e||{},n,r)}var P=function(e){return"@@redux-saga/"+e},V=P("CANCEL_PROMISE"),U=P("IO"),I=P("MULTICAST"),F=P("SELF_CANCELLATION"),M=P("TASK");function H(){return H=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},H.apply(this,arguments)}var K=function(e){return null==e},X=function(e){return null!=e},z=function(e){return"function"==typeof e},B=function(e){return"string"==typeof e},G=Array.isArray,J=function(n){return n&&!G(n)&&"object"===e(n)},W=function(e){return e&&e[M]},$=function(e){return e&&z(e.isEmpty)&&z(e.take)&&z(e.put)},Y=function e(n){return n&&(B(n)||Z(n)||z(n)||G(n)&&n.every(e))},Q=function(e){return e&&z(e.take)&&z(e.close)},Z=function(e){return Boolean(e)&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype},ee=function(e){return Q(e)&&e[I]},ne=function(e){return e&&e[U]},te=2147483647;function re(e,n){if(void 0===n&&(n=!0),"production"!==process.env.NODE_ENV&&e>te)throw new Error("delay only supports a maximum value of "+te+"ms");var t,r=new Promise((function(r){t=setTimeout(r,Math.min(te,e),n)}));return r[V]=function(){clearTimeout(t)},r}process.env.NODE_ENV;var ae=function(e){return e};function oe(e,n,t){if(!n(e))throw new Error(t)}var ce=function(e){throw e},ue=function(e){return{value:e,done:!0}};var ie=function(e){return function(e,n){void 0===e&&(e=10);var t=new Array(e),r=0,a=0,o=0,c=function(n){t[a]=n,a=(a+1)%e,r++},u=function(){if(0!=r){var n=t[o];return t[o]=null,r--,o=(o+1)%e,n}},i=function(){for(var e=[];r;)e.push(u());return e};return{isEmpty:function(){return 0==r},put:function(u){var s;if(r<e)c(u);else switch(n){case 1:throw new Error("Channel's Buffer overflow!");case 3:t[a]=u,o=a=(a+1)%e;break;case 4:s=2*e,t=i(),r=t.length,a=t.length,o=0,t.length=s,e=s,c(u)}},take:u,flush:i}}(e,3)},se="TAKE",fe="PUT",le="RACE",pe="CALL",de="CPS",ve="FORK",ye="JOIN",he="CANCEL",me="SELECT",ge="ACTION_CHANNEL",be="CANCELLED",Ee="FLUSH",we="GET_CONTEXT",xe="SET_CONTEXT",_e=Object.freeze({__proto__:null,TAKE:se,PUT:fe,ALL:"ALL",RACE:le,CALL:pe,CPS:de,FORK:ve,JOIN:ye,CANCEL:he,SELECT:me,ACTION_CHANNEL:ge,CANCELLED:be,FLUSH:Ee,GET_CONTEXT:we,SET_CONTEXT:xe}),ke="\n(HINT: if you are getting these errors in tests, consider using createMockTask from @redux-saga/testing-utils)",Ae=function(e,n){var t;return(t={})[U]=!0,t.combinator=!1,t.type=e,t.payload=n,t},Oe=function(e){return ne(e)&&e.type===ve},Ne=function(e){return"production"!==process.env.NODE_ENV&&oe(e,Oe,"detach(eff): argument must be a fork effect"),Ae(ve,H({},e.payload,{detached:!0}))};function Se(e,n){if(void 0===e&&(e="*"),"production"!==process.env.NODE_ENV&&arguments.length&&oe(arguments[0],X,"take(patternOrChannel): patternOrChannel is undefined"),Y(e))return X(n)&&console.warn("take(pattern) takes one argument but two were provided. Consider passing an array for listening to several action types"),Ae(se,{pattern:e});if(ee(e)&&X(n)&&Y(n))return Ae(se,{channel:e,pattern:n});if(Q(e))return X(n)&&console.warn("take(channel) takes one argument but two were provided. Second argument is ignored."),Ae(se,{channel:e});if("production"!==process.env.NODE_ENV)throw new Error("take(patternOrChannel): argument "+e+" is not valid channel or a valid pattern")}function Ce(e,n){return"production"!==process.env.NODE_ENV&&(arguments.length>1?(oe(e,X,"put(channel, action): argument channel is undefined"),oe(e,Q,"put(channel, action): argument "+e+" is not a valid channel"),oe(n,X,"put(channel, action): argument action is undefined")):oe(e,X,"put(action): argument action is undefined")),K(n)&&(n=e,e=void 0),Ae(fe,{channel:e,action:n})}function je(e){var n=Ae(le,e);return n.combinator=!0,n}var qe=function(e,n){if(oe(n,X,e+": argument fn is undefined or null"),!z(n)){var t,r=null;if(G(n))r=n[0],oe(t=n[1],X,e+": argument of type [context, fn] has undefined or null `fn`");else{if(!J(n))return void oe(n,z,e+": argument fn is not function");r=n.context,oe(t=n.fn,X,e+": argument of type {context, fn} has undefined or null `fn`")}r&&B(t)?oe(r[t],z,e+': context arguments has no such method - "'+t+'"'):oe(t,z,e+": unpacked fn argument (from [context, fn] or {context, fn}) is not a function")}};function Te(e,n){var t,r=null;return z(e)?t=e:(G(e)?(r=e[0],t=e[1]):(r=e.context,t=e.fn),r&&B(t)&&z(r[t])&&(t=r[t])),{context:r,fn:t,args:n}}var Le=function(e){return e!==Ue};function De(e){for(var n=arguments.length,t=new Array(n>1?n-1:0),r=1;r<n;r++)t[r-1]=arguments[r];if("production"!==process.env.NODE_ENV){var a="number"==typeof t[0]?t[0]:"ms";oe(e,Le,"instead of writing `yield call(delay, "+a+")` where delay is an effect from `redux-saga/effects` you should write `yield delay("+a+")`"),qe("call",e)}return Ae(pe,Te(e,t))}function Re(e){"production"!==process.env.NODE_ENV&&(qe("fork",e),oe(e,(function(e){return!ne(e)}),"fork: argument must not be an effect"));for(var n=arguments.length,t=new Array(n>1?n-1:0),r=1;r<n;r++)t[r-1]=arguments[r];return Ae(ve,Te(e,t))}function Pe(e){if(void 0===e&&(e=F),"production"!==process.env.NODE_ENV){if(arguments.length>1)throw new Error("cancel(...tasks) is not supported any more. Please use cancel([...tasks]) to cancel multiple tasks.");G(e)?e.forEach((function(e){oe(e,W,"cancel([...tasks]): argument "+e+" is not a valid Task object "+ke)})):e!==F&&X(e)&&oe(e,W,"cancel(task): argument "+e+" is not a valid Task object "+ke)}return Ae(he,e)}function Ve(e,n){return"production"!==process.env.NODE_ENV&&(oe(e,Y,"actionChannel(pattern,...): argument pattern is not valid"),arguments.length>1&&(oe(n,X,"actionChannel(pattern, buffer): argument buffer is undefined"),oe(n,$,"actionChannel(pattern, buffer): argument "+n+" is not a valid buffer"))),Ae(ge,{pattern:e,buffer:n})}var Ue=De.bind(null,re),Ie=function(e){return{done:!0,value:e}},Fe={};function Me(e){return Q(e)?"channel":z(n=e)&&n.hasOwnProperty("toString")?String(e):z(e)?e.name:String(e);var n}function He(e,n,t){var r,a,o,c=n;function u(n,t){if(c===Fe)return Ie(n);if(t&&!a)throw c=Fe,t;r&&r(n);var u=t?e[a](t):e[c]();return c=u.nextState,o=u.effect,r=u.stateUpdater,a=u.errorState,c===Fe?Ie(n):o}return function(e,n,t){void 0===n&&(n=ce),void 0===t&&(t="iterator");var r={meta:{name:t},next:e,throw:n,return:ue,isSagaIterator:!0};return"undefined"!=typeof Symbol&&(r[Symbol.iterator]=function(){return r}),r}(u,(function(e){return u(null,e)}),t)}function Ke(e,n){for(var t=arguments.length,r=new Array(t>2?t-2:0),a=2;a<t;a++)r[a-2]=arguments[a];var o,c={done:!1,value:Se(e)},u=function(e){return{done:!1,value:Re.apply(void 0,[n].concat(r,[e]))}},i=function(e){return o=e};return He({q1:function(){return{nextState:"q2",effect:c,stateUpdater:i}},q2:function(){return{nextState:"q1",effect:u(o)}}},"q1","takeEvery("+Me(e)+", "+n.name+")")}function Xe(e,n){for(var t=arguments.length,r=new Array(t>2?t-2:0),a=2;a<t;a++)r[a-2]=arguments[a];var o,c,u={done:!1,value:Se(e)},i=function(e){return{done:!1,value:Re.apply(void 0,[n].concat(r,[e]))}},s=function(e){return{done:!1,value:Pe(e)}},f=function(e){return o=e},l=function(e){return c=e};return He({q1:function(){return{nextState:"q2",effect:u,stateUpdater:l}},q2:function(){return o?{nextState:"q3",effect:s(o)}:{nextState:"q1",effect:i(c),stateUpdater:f}},q3:function(){return{nextState:"q1",effect:i(c),stateUpdater:f}}},"q1","takeLatest("+Me(e)+", "+n.name+")")}function ze(e,n){for(var t=arguments.length,r=new Array(t>2?t-2:0),a=2;a<t;a++)r[a-2]=arguments[a];var o,c={done:!1,value:Se(e)},u=function(e){return{done:!1,value:De.apply(void 0,[n].concat(r,[e]))}},i=function(e){return o=e};return He({q1:function(){return{nextState:"q2",effect:c,stateUpdater:i}},q2:function(){return{nextState:"q1",effect:u(o)}}},"q1","takeLeading("+Me(e)+", "+n.name+")")}function Be(e,n,t){for(var r=arguments.length,a=new Array(r>3?r-3:0),o=3;o<r;o++)a[o-3]=arguments[o];var c,u,i=function(){return{done:!1,value:Se(u)}},s=function(e){return{done:!1,value:Re.apply(void 0,[t].concat(a,[e]))}},f={done:!1,value:Ue(e)},l=function(e){return c=e},p=function(e){return u=e},d=!Q(n);return d||p(n),He({q1:function(){return{nextState:"q2",effect:{done:!1,value:Ve(n,ie(1))},stateUpdater:p}},q2:function(){return{nextState:"q3",effect:i(),stateUpdater:l}},q3:function(){return{nextState:"q4",effect:s(c)}},q4:function(){return{nextState:"q2",effect:f}}},d?"q1":"q2","throttle("+Me(n)+", "+t.name+")")}function Ge(e,n,t){for(var r=e,a=arguments.length,o=new Array(a>3?a-3:0),c=3;c<a;c++)o[c-3]=arguments[c];var u={done:!1,value:De.apply(void 0,[t].concat(o))},i={done:!1,value:Ue(n)};return He({q1:function(){return{nextState:"q2",effect:u,errorState:"q10"}},q2:function(){return{nextState:Fe}},q10:function(e){if((r-=1)<=0)throw e;return{nextState:"q1",effect:i}}},"q1","retry("+t.name+")")}function Je(e,n,t){for(var r=arguments.length,a=new Array(r>3?r-3:0),o=3;o<r;o++)a[o-3]=arguments[o];var c,u,i={done:!1,value:Se(n)},s={done:!1,value:je({action:Se(n),debounce:Ue(e)})},f=function(e){return{done:!1,value:Re.apply(void 0,[t].concat(a,[e]))}},l=function(e){return{done:!1,value:e}},p=function(e){return c=e},d=function(e){return u=e};return He({q1:function(){return{nextState:"q2",effect:i,stateUpdater:p}},q2:function(){return{nextState:"q3",effect:s,stateUpdater:d}},q3:function(){return u.debounce?{nextState:"q1",effect:f(c)}:{nextState:"q2",effect:l(u.action),stateUpdater:p}}},"q1","debounce("+Me(n)+", "+t.name+")")}var We=function(e,n,t){oe(n,X,e.name+" requires a pattern or channel"),oe(t,X,e.name+" requires a saga parameter")};function $e(e,n){"production"!==process.env.NODE_ENV&&We($e,e,n);for(var t=arguments.length,r=new Array(t>2?t-2:0),a=2;a<t;a++)r[a-2]=arguments[a];return Re.apply(void 0,[Ke,e,n].concat(r))}function Ye(e,n){"production"!==process.env.NODE_ENV&&We(Ye,e,n);for(var t=arguments.length,r=new Array(t>2?t-2:0),a=2;a<t;a++)r[a-2]=arguments[a];return Re.apply(void 0,[Xe,e,n].concat(r))}function Qe(e,n,t){"production"!==process.env.NODE_ENV&&(oe(n,X,"throttle requires a pattern or channel"),oe(t,X,"throttle requires a saga parameter"));for(var r=arguments.length,a=new Array(r>3?r-3:0),o=3;o<r;o++)a[o-3]=arguments[o];return Re.apply(void 0,[Be,e,n,t].concat(a))}var Ze=Object.freeze({__proto__:null,actionChannel:Ve,all:function(e){var n=Ae("ALL",e);return n.combinator=!0,n},apply:function(e,n,t){void 0===t&&(t=[]);var r=[e,n];return"production"!==process.env.NODE_ENV&&qe("apply",r),Ae(pe,Te([e,n],t))},call:De,cancel:Pe,cancelled:function(){return Ae(be,{})},cps:function(e){"production"!==process.env.NODE_ENV&&qe("cps",e);for(var n=arguments.length,t=new Array(n>1?n-1:0),r=1;r<n;r++)t[r-1]=arguments[r];return Ae(de,Te(e,t))},debounce:function(e,n,t){for(var r=arguments.length,a=new Array(r>3?r-3:0),o=3;o<r;o++)a[o-3]=arguments[o];return Re.apply(void 0,[Je,e,n,t].concat(a))},delay:Ue,effectTypes:_e,flush:function(e){return"production"!==process.env.NODE_ENV&&oe(e,Q,"flush(channel): argument "+e+" is not valid channel"),Ae(Ee,e)},fork:Re,getContext:function(e){return"production"!==process.env.NODE_ENV&&oe(e,B,"getContext(prop): argument "+e+" is not a string"),Ae(we,e)},join:function(e){if("production"!==process.env.NODE_ENV){if(arguments.length>1)throw new Error("join(...tasks) is not supported any more. Please use join([...tasks]) to join multiple tasks.");G(e)?e.forEach((function(e){oe(e,W,"join([...tasks]): argument "+e+" is not a valid Task object "+ke)})):oe(e,W,"join(task): argument "+e+" is not a valid Task object "+ke)}return Ae(ye,e)},put:Ce,putResolve:function(){var e=Ce.apply(void 0,arguments);return e.payload.resolve=!0,e},race:je,retry:function(e,n,t){for(var r=arguments.length,a=new Array(r>3?r-3:0),o=3;o<r;o++)a[o-3]=arguments[o];return De.apply(void 0,[Ge,e,n,t].concat(a))},select:function(e){void 0===e&&(e=ae);for(var n=arguments.length,t=new Array(n>1?n-1:0),r=1;r<n;r++)t[r-1]=arguments[r];return"production"!==process.env.NODE_ENV&&arguments.length&&(oe(arguments[0],X,"select(selector, [...]): argument selector is undefined"),oe(e,z,"select(selector, [...]): argument "+e+" is not a function")),Ae(me,{selector:e,args:t})},setContext:function(e){return"production"!==process.env.NODE_ENV&&oe(e,J,function(e,n){return(e?e+".":"")+"setContext(props): argument "+n+" is not a plain object"}(null,e)),Ae(xe,e)},spawn:function(e){"production"!==process.env.NODE_ENV&&qe("spawn",e);for(var n=arguments.length,t=new Array(n>1?n-1:0),r=1;r<n;r++)t[r-1]=arguments[r];return Ne(Re.apply(void 0,[e].concat(t)))},take:Se,takeEvery:$e,takeLatest:Ye,takeLeading:function e(n,t){"production"!==process.env.NODE_ENV&&We(e,n,t);for(var r=arguments.length,a=new Array(r>2?r-2:0),o=2;o<r;o++)a[o-2]=arguments[o];return Re.apply(void 0,[ze,n,t].concat(a))},takeMaybe:function(){var e=Se.apply(void 0,arguments);return e.payload.maybe=!0,e},throttle:Qe});function en(e,n){var t="".concat(n.namespace).concat(N).concat(e),r=t.replace(/\/@@[^/]+?$/,"");return(Array.isArray(n.reducers)?n.reducers[0][r]:n.reducers&&n.reducers[r])||n.effects&&n.effects[r]?t:e}function nn(e,n,r,a){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return t().mark((function c(){var u,i;return t().wrap((function(c){for(;;)switch(c.prev=c.next){case 0:u=t().mark((function c(){var u,s;return t().wrap((function(c){for(;;)switch(c.prev=c.next){case 0:if(!Object.prototype.hasOwnProperty.call(e,i)){c.next=7;break}return u=tn(i,e[i],n,r,a,o),c.next=4,Re(u);case 4:return s=c.sent,c.next=7,Re(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Se("".concat(n.namespace,"/@@CANCEL_EFFECTS"));case 2:return e.next=4,Pe(s);case 4:case"end":return e.stop()}}),e)})));case 7:case"end":return c.stop()}}),c)})),c.t0=t().keys(e);case 2:if((c.t1=c.t0()).done){c.next=7;break}return i=c.t1.value,c.delegateYield(u(),"t2",5);case 5:c.next=2;break;case 7:case"end":return c.stop()}}),c)}))}function tn(e,n,r,o,c,u){var i,s,f=t().mark(m),l=n,p="takeEvery";if(Array.isArray(n)){var d=O(n,1);l=d[0];var v=n[1];v&&v.type&&("throttle"===(p=v.type)&&(a(v.ms,"app.start: opts.ms should be defined if type is throttle"),i=v.ms),"poll"===p&&(a(v.delay,"app.start: opts.delay should be defined if type is poll"),s=v.delay)),a(["watcher","takeEvery","takeLatest","throttle","poll"].indexOf(p)>-1,"app.start: effect type should be takeEvery, takeLatest, throttle, poll or watcher")}function y(){}function m(){var n,a,c,i,s,p,d,v,h,m=arguments;return t().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:for(n=m.length,a=new Array(n),c=0;c<n;c++)a[c]=m[c];return i=a.length>0?a[0]:{},s=i.__dva_resolve,p=void 0===s?y:s,d=i.__dva_reject,v=void 0===d?y:d,t.prev=2,t.next=5,Ce({type:"".concat(e).concat(N,"@@start")});case 5:return t.next=7,l.apply(void 0,j(a.concat(rn(r,u))));case 7:return h=t.sent,t.next=10,Ce({type:"".concat(e).concat(N,"@@end")});case 10:p(h),t.next=17;break;case 13:t.prev=13,t.t0=t.catch(2),o(t.t0,{key:e,effectArgs:a}),t.t0._doNotReject||v(t.t0);case 17:case"end":return t.stop()}}),f,null,[[2,13]])}var g=function(e,n,t,r){var a,o=h(e);try{for(o.s();!(a=o.n()).done;){n=(0,a.value)(n,Ze,t,r)}}catch(e){o.e(e)}finally{o.f()}return n}(c,m,r,e);switch(p){case"watcher":return m;case"takeLatest":return t().mark((function n(){return t().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,Ye(e,g);case 2:case"end":return n.stop()}}),n)}));case"throttle":return t().mark((function n(){return t().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,Qe(i,e,g);case 2:case"end":return n.stop()}}),n)}));case"poll":return t().mark((function n(){var r,a,o,c,u,i,f;return t().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:o=function(e,n){var o;return t().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:o=e.call;case 1:return t.next=4,o(g,n);case 4:return t.next=6,o(a,s);case 6:t.next=1;break;case 8:case"end":return t.stop()}}),r)},a=function(e){return new Promise((function(n){return setTimeout(n,e)}))},r=t().mark(o),c=De,u=Se,i=je;case 4:return n.next=7,u("".concat(e,"-start"));case 7:return f=n.sent,n.next=10,i([c(o,Ze,f),u("".concat(e,"-stop"))]);case 10:n.next=4;break;case 12:case"end":return n.stop()}}),n)}));default:return t().mark((function n(){return t().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,$e(e,g);case 2:case"end":return n.stop()}}),n)}))}}function rn(e,t){function r(n,r){a(n,"dispatch: action should be a plain Object with type");var o=t.namespacePrefixWarning;(void 0===o||o)&&d(0!==n.indexOf("".concat(e.namespace).concat(N)),"[".concat(r,"] ").concat(n," should not be prefixed with namespace ").concat(e.namespace))}function o(t){var a=t.type;return r(a,"sagaEffects.put"),Ce(n(n({},t),{},{type:en(a,e)}))}return o.resolve=function(t){var a=t.type;return r(a,"sagaEffects.put.resolve"),Ce.resolve(n(n({},t),{},{type:en(a,e)}))},n(n({},Ze),{},{put:o,take:function(n){return"string"==typeof n?(r(n,"sagaEffects.take"),Se(en(n,e))):Array.isArray(n)?Se(n.map((function(n){return"string"==typeof n?(r(n,"sagaEffects.take"),en(n,e)):n}))):Se(n)}})}function an(e,n){for(var t=0;t<n.length;t++){var a=n[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,r(a.key),a)}}var on=["onError","onStateChange","onAction","onHmr","onReducer","onEffect","extraReducers","extraEnhancers","_handleActions"];function cn(e){return Object.keys(e).reduce((function(n,t){return on.indexOf(t)>-1&&(n[t]=e[t]),n}),{})}var un=function(){function e(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this._handleActions=null,this.hooks=on.reduce((function(e,n){return e[n]=[],e}),{})}var t,r,o;return t=e,r=[{key:"use",value:function(e){a(f(e),"plugin.use: plugin should be plain object");var n=this.hooks;for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(a(n[t],"plugin.use: unknown plugin property: ".concat(t)),"_handleActions"===t?this._handleActions=e[t]:"extraEnhancers"===t?n[t]=e[t]:n[t].push(e[t]))}},{key:"apply",value:function(e,n){var t=this.hooks;a(["onError","onHmr"].indexOf(e)>-1,"plugin.apply: hook ".concat(e," cannot be applied"));var r=t[e];return function(){if(r.length){var e,t=h(r);try{for(t.s();!(e=t.n()).done;){var a=e.value;a.apply(void 0,arguments)}}catch(e){t.e(e)}finally{t.f()}}else n&&n.apply(void 0,arguments)}}},{key:"get",value:function(e){var t,r=this.hooks;return a(e in r,"plugin.get: hook ".concat(e," cannot be got")),"extraReducers"===e?function(e){var t,r={},a=h(e);try{for(a.s();!(t=a.n()).done;){var o=t.value;r=n(n({},r),o)}}catch(e){a.e(e)}finally{a.f()}return r}(r[e]):"onReducer"===e?(t=r[e],function(e){var n,r=h(t);try{for(r.s();!(n=r.n()).done;)e=(0,n.value)(e)}catch(e){r.e(e)}finally{r.f()}return e}):r[e]}}],r&&an(t.prototype,r),o&&an(t,o),Object.defineProperty(t,"prototype",{writable:!1}),e}();function sn(e,n,t){return Object.keys(e).reduce((function(r,a){return d(0!==a.indexOf("".concat(n).concat(N)),"[prefixNamespace]: ".concat(t," ").concat(a," should not be prefixed with namespace ").concat(n)),r["".concat(n).concat(N).concat(a)]=e[a],r}),{})}function fn(e){var n,t=e.namespace,r=e.reducers,a=e.effects;if(r)if(m(r)){var o=k(n=r)||C(n)||y(n)||A(),c=o[0],u=o.slice(1);e.reducers=[sn(c,t,"reducer")].concat(j(u))}else e.reducers=sn(r,t,"reducer");return a&&(e.effects=sn(a,t,"effect")),e}function ln(e,t){return function(r){var o=r.type;return a(o,"dispatch: action should be a plain Object with type"),d(0!==o.indexOf("".concat(t.namespace).concat(N)),"dispatch: ".concat(o," should not be prefixed with namespace ").concat(t.namespace)),e(n(n({},r),{},{type:en(o,t)}))}}function pn(e,n,t,r){var a=[],o=[];for(var c in e)if(Object.prototype.hasOwnProperty.call(e,c)){var u=(0,e[c])({dispatch:ln(t._store.dispatch,n),history:t._history},r);g(u)?a.push(u):o.push(c)}return{funcs:a,nonFuncs:o}}function dn(e,n){if(e[n]){var t=e[n],r=t.funcs,a=t.nonFuncs;d(0===a.length,"[app.unModel] subscription should return unListener function, check these subscriptions ".concat(a.join(", ")));var o,c=h(r);try{for(c.s();!(o=c.n()).done;){(0,o.value)()}}catch(e){c.e(e)}finally{c.f()}delete e[n]}}var vn=E,yn=w,hn={namespace:"@@dva",state:0,reducers:{UPDATE:function(e){return e+1}}};function mn(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.initialReducer,o=t.setupApp,c=void 0===o?vn:o,s=new un;s.use(cn(e));var f={_models:[fn(n({},hn))],_store:null,_plugin:s,use:s.use.bind(s),model:l,start:y};return f;function l(e){"production"!==process.env.NODE_ENV&&_(e,f._models);var t=fn(n({},e));return f._models.push(t),t}function p(n,t,r,a){a=l(a);var o=f._store;o.asyncReducers[a.namespace]=R(a.reducers,a.state,s._handleActions,a.namespace),o.replaceReducer(n()),a.effects&&o.runSaga(f._getSaga(a.effects,a,t,s.get("onEffect"),e)),a.subscriptions&&(r[a.namespace]=pn(a.subscriptions,a,f,t))}function d(e,n,t,r){var a=f._store;delete a.asyncReducers[r],delete n[r],a.replaceReducer(e()),a.dispatch({type:"@@dva/UPDATE"}),a.dispatch({type:"".concat(r,"/@@CANCEL_EFFECTS")}),dn(t,r),f._models=f._models.filter((function(e){return e.namespace!==r}))}function v(e,n,t,r,a){var o=f._store,c=a.namespace,u=yn(f._models,(function(e){return e.namespace===c}));~u&&(o.dispatch({type:"".concat(c,"/@@CANCEL_EFFECTS")}),delete o.asyncReducers[c],delete n[c],dn(t,c),f._models.splice(u,1)),f.model(a),o.dispatch({type:"@@dva/UPDATE"})}function y(){var o=function(e,n){e&&("string"==typeof e&&(e=new Error(e)),e.preventDefault=function(){e._doNotReject=!0},s.apply("onError",(function(e){throw new Error(e.stack||e)}))(e,f._store.dispatch,n))},l=i(),y=S(f);f._getSaga=nn.bind(null);var m,g=[],b=n({},r),E=h(f._models);try{for(E.s();!(m=E.n()).done;){var w=m.value;b[w.namespace]=R(w.reducers,w.state,s._handleActions,w.namespace),w.effects&&g.push(f._getSaga(w.effects,w,o,s.get("onEffect"),e))}}catch(e){E.e(e)}finally{E.f()}var x=s.get("onReducer"),_=s.get("extraReducers");a(Object.keys(_).every((function(e){return!(e in b)})),"[app.start] extraReducers is conflict with other reducers, reducers list: ".concat(Object.keys(b).join(", "))),f._store=q({reducers:D(),initialState:e.initialState||{},plugin:s,createOpts:t,sagaMiddleware:l,promiseMiddleware:y});var k=f._store;k.runSaga=l.run,k.asyncReducers={};var A,O=h(s.get("onStateChange"));try{var N=function(){var e=A.value;k.subscribe((function(){e(k.getState())}))};for(O.s();!(A=O.n()).done;)N()}catch(e){O.e(e)}finally{O.f()}g.forEach(l.run),c(f);var C,j={},T=h(this._models);try{for(T.s();!(C=T.n()).done;){var L=C.value;L.subscriptions&&(j[L.namespace]=pn(L.subscriptions,L,f,o))}}catch(e){T.e(e)}finally{T.f()}function D(){return x(u(n(n(n({},b),_),f._store?f._store.asyncReducers:{})))}f.model=p.bind(f,D,o,j),f.unModel=d.bind(f,D,b,j),f.replaceModel=v.bind(f,D,b,j,o)}}var gn=o,bn=c;export{bn as Provider,gn as connect,mn as create,x as utils};
1
+ import { a as _typeof, _ as _objectSpread2, b as _regeneratorRuntime, c as _toPropertyKey } from '../regeneratorRuntime.js';
2
+ import invariant from 'invariant';
3
+ import { connect as connect$1, Provider as Provider$1 } from 'react-redux';
4
+ import { combineReducers } from 'redux';
5
+ import createSagaMiddleware__default from 'redux-saga';
6
+ import * as createSagaMiddleware from 'redux-saga';
7
+ export { createSagaMiddleware as saga };
8
+ import { isPlainObject } from 'is-plain-object';
9
+ import flatten from 'flatten';
10
+ import { configureStore } from '@reduxjs/toolkit';
11
+ import warning from 'warning';
12
+
13
+ function _arrayLikeToArray(arr, len) {
14
+ if (len == null || len > arr.length) len = arr.length;
15
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
16
+ return arr2;
17
+ }
18
+
19
+ function _unsupportedIterableToArray(o, minLen) {
20
+ if (!o) return;
21
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
22
+ var n = Object.prototype.toString.call(o).slice(8, -1);
23
+ if (n === "Object" && o.constructor) n = o.constructor.name;
24
+ if (n === "Map" || n === "Set") return Array.from(o);
25
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
26
+ }
27
+
28
+ function _createForOfIteratorHelper(o, allowArrayLike) {
29
+ var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
30
+ if (!it) {
31
+ if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
32
+ if (it) o = it;
33
+ var i = 0;
34
+ var F = function F() {};
35
+ return {
36
+ s: F,
37
+ n: function n() {
38
+ if (i >= o.length) return {
39
+ done: true
40
+ };
41
+ return {
42
+ done: false,
43
+ value: o[i++]
44
+ };
45
+ },
46
+ e: function e(_e) {
47
+ throw _e;
48
+ },
49
+ f: F
50
+ };
51
+ }
52
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
53
+ }
54
+ var normalCompletion = true,
55
+ didErr = false,
56
+ err;
57
+ return {
58
+ s: function s() {
59
+ it = it.call(o);
60
+ },
61
+ n: function n() {
62
+ var step = it.next();
63
+ normalCompletion = step.done;
64
+ return step;
65
+ },
66
+ e: function e(_e2) {
67
+ didErr = true;
68
+ err = _e2;
69
+ },
70
+ f: function f() {
71
+ try {
72
+ if (!normalCompletion && it["return"] != null) it["return"]();
73
+ } finally {
74
+ if (didErr) throw err;
75
+ }
76
+ }
77
+ };
78
+ }
79
+
80
+ var isArray = Array.isArray.bind(Array);
81
+ var isFunction = function isFunction(o) {
82
+ return typeof o === 'function';
83
+ };
84
+ var returnSelf = function returnSelf(m) {
85
+ return m;
86
+ };
87
+ var noop$1 = function noop() {};
88
+ var findIndex$1 = function findIndex(array, predicate) {
89
+ for (var i = 0, length = array.length; i < length; i += 1) {
90
+ if (predicate(array[i], i)) return i;
91
+ }
92
+ return -1;
93
+ };
94
+
95
+ var utils = /*#__PURE__*/Object.freeze({
96
+ __proto__: null,
97
+ findIndex: findIndex$1,
98
+ isArray: isArray,
99
+ isFunction: isFunction,
100
+ isPlainObject: isPlainObject,
101
+ noop: noop$1,
102
+ returnSelf: returnSelf
103
+ });
104
+
105
+ function checkModel(model, existModels) {
106
+ var namespace = model.namespace,
107
+ reducers = model.reducers,
108
+ effects = model.effects,
109
+ subscriptions = model.subscriptions;
110
+
111
+ // namespace 必须被定义
112
+ invariant(namespace, "[app.model] namespace should be defined");
113
+ // 并且是字符串
114
+ invariant(typeof namespace === 'string', "[app.model] namespace should be string, but got ".concat(_typeof(namespace)));
115
+ // 并且唯一
116
+ invariant(!existModels.some(function (m) {
117
+ return m.namespace === namespace;
118
+ }), "[app.model] namespace should be unique");
119
+
120
+ // state 可以为任意值
121
+
122
+ // reducers 可以为空,PlainObject 或者数组
123
+ if (reducers) {
124
+ invariant(isPlainObject(reducers) || isArray(reducers), "[app.model] reducers should be plain object or array, but got ".concat(_typeof(reducers)));
125
+ // 数组的 reducers 必须是 [Object, Function] 的格式
126
+ invariant(!isArray(reducers) || isPlainObject(reducers[0]) && isFunction(reducers[1]), "[app.model] reducers with array should be [Object, Function]");
127
+ }
128
+
129
+ // effects 可以为空,PlainObject
130
+ if (effects) {
131
+ invariant(isPlainObject(effects), "[app.model] effects should be plain object, but got ".concat(_typeof(effects)));
132
+ }
133
+ if (subscriptions) {
134
+ // subscriptions 可以为空,PlainObject
135
+ invariant(isPlainObject(subscriptions), "[app.model] subscriptions should be plain object, but got ".concat(_typeof(subscriptions)));
136
+
137
+ // subscription 必须为函数
138
+ invariant(isAllFunction(subscriptions), "[app.model] subscription should be function");
139
+ }
140
+ }
141
+ function isAllFunction(obj) {
142
+ return Object.keys(obj).every(function (key) {
143
+ return isFunction(obj[key]);
144
+ });
145
+ }
146
+
147
+ function _arrayWithHoles(arr) {
148
+ if (Array.isArray(arr)) return arr;
149
+ }
150
+
151
+ function _iterableToArrayLimit(arr, i) {
152
+ var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
153
+ if (null != _i) {
154
+ var _s,
155
+ _e,
156
+ _x,
157
+ _r,
158
+ _arr = [],
159
+ _n = !0,
160
+ _d = !1;
161
+ try {
162
+ if (_x = (_i = _i.call(arr)).next, 0 === i) {
163
+ if (Object(_i) !== _i) return;
164
+ _n = !1;
165
+ } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
166
+ } catch (err) {
167
+ _d = !0, _e = err;
168
+ } finally {
169
+ try {
170
+ if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
171
+ } finally {
172
+ if (_d) throw _e;
173
+ }
174
+ }
175
+ return _arr;
176
+ }
177
+ }
178
+
179
+ function _nonIterableRest() {
180
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
181
+ }
182
+
183
+ function _slicedToArray(arr, i) {
184
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
185
+ }
186
+
187
+ var NAMESPACE_SEP = '/';
188
+
189
+ function createPromiseMiddleware(app) {
190
+ return function () {
191
+ return function (next) {
192
+ return function (action) {
193
+ var type = action.type;
194
+ if (isEffect(type)) {
195
+ return new Promise(function (resolve, reject) {
196
+ next(_objectSpread2({
197
+ __dva_resolve: resolve,
198
+ __dva_reject: reject
199
+ }, action));
200
+ });
201
+ } else {
202
+ return next(action);
203
+ }
204
+ };
205
+ };
206
+ };
207
+ function isEffect(type) {
208
+ if (!type || typeof type !== 'string') return false;
209
+ var _type$split = type.split(NAMESPACE_SEP),
210
+ _type$split2 = _slicedToArray(_type$split, 1),
211
+ namespace = _type$split2[0];
212
+ var model = app._models.filter(function (m) {
213
+ return m.namespace === namespace;
214
+ })[0];
215
+ if (model) {
216
+ if (model.effects && model.effects[type]) {
217
+ return true;
218
+ }
219
+ }
220
+ return false;
221
+ }
222
+ }
223
+
224
+ function _arrayWithoutHoles(arr) {
225
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
226
+ }
227
+
228
+ function _iterableToArray(iter) {
229
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
230
+ }
231
+
232
+ function _nonIterableSpread() {
233
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
234
+ }
235
+
236
+ function _toConsumableArray(arr) {
237
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
238
+ }
239
+
240
+ function createStore (_ref) {
241
+ var reducers = _ref.reducers,
242
+ initialState = _ref.initialState,
243
+ plugin = _ref.plugin,
244
+ sagaMiddleware = _ref.sagaMiddleware,
245
+ promiseMiddleware = _ref.promiseMiddleware,
246
+ _ref$createOpts$setup = _ref.createOpts.setupMiddleWares,
247
+ setupMiddleWares = _ref$createOpts$setup === void 0 ? returnSelf : _ref$createOpts$setup;
248
+ // extra enhancers
249
+ var extraEnhancers = plugin.get('extraEnhancers');
250
+ invariant(isArray(extraEnhancers), "[app.start] extraEnhancers should be array, but got ".concat(_typeof(extraEnhancers)));
251
+ var extraMiddleWares = plugin.get('onAction');
252
+ var middleWares = setupMiddleWares([promiseMiddleware, sagaMiddleware].concat(_toConsumableArray(flatten(extraMiddleWares))));
253
+ return configureStore({
254
+ reducer: reducers,
255
+ preloadedState: initialState,
256
+ middleware: middleWares,
257
+ enhancers: extraEnhancers
258
+ });
259
+ }
260
+
261
+ function identify(value) {
262
+ return value;
263
+ }
264
+ function handleAction(actionType) {
265
+ var reducer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : identify;
266
+ var namespace = arguments.length > 2 ? arguments[2] : undefined;
267
+ return function (state, action) {
268
+ var type = action.type;
269
+ invariant(type, 'dispatch: action should be a plain Object with type');
270
+ if (actionType === type) {
271
+ return reducer(state, action, namespace);
272
+ }
273
+ return state;
274
+ };
275
+ }
276
+ function reduceReducers() {
277
+ for (var _len = arguments.length, reducers = new Array(_len), _key = 0; _key < _len; _key++) {
278
+ reducers[_key] = arguments[_key];
279
+ }
280
+ return function (previous, current) {
281
+ return reducers.reduce(function (p, r) {
282
+ return r(p, current);
283
+ }, previous);
284
+ };
285
+ }
286
+ function handleActions(handlers, defaultState, namespace) {
287
+ var reducers = Object.keys(handlers).map(function (type) {
288
+ return handleAction(type, handlers[type], namespace);
289
+ });
290
+ var reducer = reduceReducers.apply(void 0, _toConsumableArray(reducers));
291
+ return function () {
292
+ var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultState;
293
+ var action = arguments.length > 1 ? arguments[1] : undefined;
294
+ return reducer(state, action, namespace);
295
+ };
296
+ }
297
+
298
+ function getReducer(reducers, state, handleActions$1, namespace) {
299
+ // Support reducer enhancer
300
+ // e.g. reducers: [realReducers, enhancer]
301
+ if (Array.isArray(reducers)) {
302
+ return reducers[1]((handleActions$1 || handleActions)(reducers[0], state, namespace));
303
+ } else {
304
+ return (handleActions$1 || handleActions)(reducers || {}, state, namespace);
305
+ }
306
+ }
307
+
308
+ var createSymbol = function createSymbol(name) {
309
+ return "@@redux-saga/" + name;
310
+ };
311
+ var CANCEL$1 = /*#__PURE__*/
312
+ createSymbol('CANCEL_PROMISE');
313
+ var IO = /*#__PURE__*/
314
+ createSymbol('IO');
315
+ var MULTICAST = /*#__PURE__*/
316
+ createSymbol('MULTICAST');
317
+ var SELF_CANCELLATION = /*#__PURE__*/
318
+ createSymbol('SELF_CANCELLATION');
319
+ var TASK = /*#__PURE__*/
320
+ createSymbol('TASK');
321
+
322
+ function _extends() {
323
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
324
+ for (var i = 1; i < arguments.length; i++) {
325
+ var source = arguments[i];
326
+ for (var key in source) {
327
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
328
+ target[key] = source[key];
329
+ }
330
+ }
331
+ }
332
+ return target;
333
+ };
334
+ return _extends.apply(this, arguments);
335
+ }
336
+
337
+ var undef = function undef(v) {
338
+ return v === null || v === undefined;
339
+ };
340
+ var notUndef = function notUndef(v) {
341
+ return v !== null && v !== undefined;
342
+ };
343
+ var func = function func(f) {
344
+ return typeof f === 'function';
345
+ };
346
+ var string = function string(s) {
347
+ return typeof s === 'string';
348
+ };
349
+ var array = Array.isArray;
350
+ var object = function object(obj) {
351
+ return obj && !array(obj) && _typeof(obj) === 'object';
352
+ };
353
+ var task = function task(t) {
354
+ return t && t[TASK];
355
+ };
356
+ var buffer = function buffer(buf) {
357
+ return buf && func(buf.isEmpty) && func(buf.take) && func(buf.put);
358
+ };
359
+ var pattern = function pattern(pat) {
360
+ return pat && (string(pat) || symbol(pat) || func(pat) || array(pat) && pat.every(pattern));
361
+ };
362
+ var channel = function channel(ch) {
363
+ return ch && func(ch.take) && func(ch.close);
364
+ };
365
+ var stringableFunc = function stringableFunc(f) {
366
+ return func(f) && f.hasOwnProperty('toString');
367
+ };
368
+ var symbol = function symbol(sym) {
369
+ return Boolean(sym) && typeof Symbol === 'function' && sym.constructor === Symbol && sym !== Symbol.prototype;
370
+ };
371
+ var multicast = function multicast(ch) {
372
+ return channel(ch) && ch[MULTICAST];
373
+ };
374
+ var effect = function effect(eff) {
375
+ return eff && eff[IO];
376
+ };
377
+
378
+ var MAX_SIGNED_INT = 2147483647;
379
+ function delayP(ms, val) {
380
+ if (val === void 0) {
381
+ val = true;
382
+ }
383
+
384
+ // https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value
385
+ if (process.env.NODE_ENV !== 'production' && ms > MAX_SIGNED_INT) {
386
+ throw new Error('delay only supports a maximum value of ' + MAX_SIGNED_INT + 'ms');
387
+ }
388
+ var timeoutId;
389
+ var promise = new Promise(function (resolve) {
390
+ timeoutId = setTimeout(resolve, Math.min(MAX_SIGNED_INT, ms), val);
391
+ });
392
+ promise[CANCEL$1] = function () {
393
+ clearTimeout(timeoutId);
394
+ };
395
+ return promise;
396
+ }
397
+
398
+ if (process.env.NODE_ENV !== 'production' && typeof Proxy !== 'undefined') ;
399
+ var identity = function identity(v) {
400
+ return v;
401
+ };
402
+ function check(value, predicate, error) {
403
+ if (!predicate(value)) {
404
+ throw new Error(error);
405
+ }
406
+ }
407
+ var kThrow = function kThrow(err) {
408
+ throw err;
409
+ };
410
+ var kReturn = function kReturn(value) {
411
+ return {
412
+ value: value,
413
+ done: true
414
+ };
415
+ };
416
+ function makeIterator(next, thro, name) {
417
+ if (thro === void 0) {
418
+ thro = kThrow;
419
+ }
420
+ if (name === void 0) {
421
+ name = 'iterator';
422
+ }
423
+ var iterator = {
424
+ meta: {
425
+ name: name
426
+ },
427
+ next: next,
428
+ throw: thro,
429
+ return: kReturn,
430
+ isSagaIterator: true
431
+ };
432
+ if (typeof Symbol !== 'undefined') {
433
+ iterator[Symbol.iterator] = function () {
434
+ return iterator;
435
+ };
436
+ }
437
+ return iterator;
438
+ }
439
+ var createSetContextWarning = function createSetContextWarning(ctx, props) {
440
+ return (ctx ? ctx + '.' : '') + "setContext(props): argument " + props + " is not a plain object";
441
+ };
442
+ var BUFFER_OVERFLOW = "Channel's Buffer overflow!";
443
+ var ON_OVERFLOW_THROW = 1;
444
+ var ON_OVERFLOW_SLIDE = 3;
445
+ var ON_OVERFLOW_EXPAND = 4;
446
+ function ringBuffer(limit, overflowAction) {
447
+ if (limit === void 0) {
448
+ limit = 10;
449
+ }
450
+ var arr = new Array(limit);
451
+ var length = 0;
452
+ var pushIndex = 0;
453
+ var popIndex = 0;
454
+ var push = function push(it) {
455
+ arr[pushIndex] = it;
456
+ pushIndex = (pushIndex + 1) % limit;
457
+ length++;
458
+ };
459
+ var take = function take() {
460
+ if (length != 0) {
461
+ var it = arr[popIndex];
462
+ arr[popIndex] = null;
463
+ length--;
464
+ popIndex = (popIndex + 1) % limit;
465
+ return it;
466
+ }
467
+ };
468
+ var flush = function flush() {
469
+ var items = [];
470
+ while (length) {
471
+ items.push(take());
472
+ }
473
+ return items;
474
+ };
475
+ return {
476
+ isEmpty: function isEmpty() {
477
+ return length == 0;
478
+ },
479
+ put: function put(it) {
480
+ if (length < limit) {
481
+ push(it);
482
+ } else {
483
+ var doubledLimit;
484
+ switch (overflowAction) {
485
+ case ON_OVERFLOW_THROW:
486
+ throw new Error(BUFFER_OVERFLOW);
487
+ case ON_OVERFLOW_SLIDE:
488
+ arr[pushIndex] = it;
489
+ pushIndex = (pushIndex + 1) % limit;
490
+ popIndex = pushIndex;
491
+ break;
492
+ case ON_OVERFLOW_EXPAND:
493
+ doubledLimit = 2 * limit;
494
+ arr = flush();
495
+ length = arr.length;
496
+ pushIndex = arr.length;
497
+ popIndex = 0;
498
+ arr.length = doubledLimit;
499
+ limit = doubledLimit;
500
+ push(it);
501
+ break;
502
+ }
503
+ }
504
+ },
505
+
506
+ take: take,
507
+ flush: flush
508
+ };
509
+ }
510
+ var sliding = function sliding(limit) {
511
+ return ringBuffer(limit, ON_OVERFLOW_SLIDE);
512
+ };
513
+ var TAKE = 'TAKE';
514
+ var PUT = 'PUT';
515
+ var ALL = 'ALL';
516
+ var RACE = 'RACE';
517
+ var CALL = 'CALL';
518
+ var CPS = 'CPS';
519
+ var FORK = 'FORK';
520
+ var JOIN = 'JOIN';
521
+ var CANCEL = 'CANCEL';
522
+ var SELECT = 'SELECT';
523
+ var ACTION_CHANNEL = 'ACTION_CHANNEL';
524
+ var CANCELLED = 'CANCELLED';
525
+ var FLUSH = 'FLUSH';
526
+ var GET_CONTEXT = 'GET_CONTEXT';
527
+ var SET_CONTEXT = 'SET_CONTEXT';
528
+ var effectTypes = /*#__PURE__*/Object.freeze({
529
+ __proto__: null,
530
+ TAKE: TAKE,
531
+ PUT: PUT,
532
+ ALL: ALL,
533
+ RACE: RACE,
534
+ CALL: CALL,
535
+ CPS: CPS,
536
+ FORK: FORK,
537
+ JOIN: JOIN,
538
+ CANCEL: CANCEL,
539
+ SELECT: SELECT,
540
+ ACTION_CHANNEL: ACTION_CHANNEL,
541
+ CANCELLED: CANCELLED,
542
+ FLUSH: FLUSH,
543
+ GET_CONTEXT: GET_CONTEXT,
544
+ SET_CONTEXT: SET_CONTEXT
545
+ });
546
+ var TEST_HINT = '\n(HINT: if you are getting these errors in tests, consider using createMockTask from @redux-saga/testing-utils)';
547
+ var makeEffect = function makeEffect(type, payload) {
548
+ var _ref;
549
+ return _ref = {}, _ref[IO] = true, _ref.combinator = false, _ref.type = type, _ref.payload = payload, _ref;
550
+ };
551
+ var isForkEffect = function isForkEffect(eff) {
552
+ return effect(eff) && eff.type === FORK;
553
+ };
554
+ var detach = function detach(eff) {
555
+ if (process.env.NODE_ENV !== 'production') {
556
+ check(eff, isForkEffect, 'detach(eff): argument must be a fork effect');
557
+ }
558
+ return makeEffect(FORK, _extends({}, eff.payload, {
559
+ detached: true
560
+ }));
561
+ };
562
+ function take(patternOrChannel, multicastPattern) {
563
+ if (patternOrChannel === void 0) {
564
+ patternOrChannel = '*';
565
+ }
566
+ if (process.env.NODE_ENV !== 'production' && arguments.length) {
567
+ check(arguments[0], notUndef, 'take(patternOrChannel): patternOrChannel is undefined');
568
+ }
569
+ if (pattern(patternOrChannel)) {
570
+ if (notUndef(multicastPattern)) {
571
+ /* eslint-disable no-console */
572
+ console.warn("take(pattern) takes one argument but two were provided. Consider passing an array for listening to several action types");
573
+ }
574
+ return makeEffect(TAKE, {
575
+ pattern: patternOrChannel
576
+ });
577
+ }
578
+ if (multicast(patternOrChannel) && notUndef(multicastPattern) && pattern(multicastPattern)) {
579
+ return makeEffect(TAKE, {
580
+ channel: patternOrChannel,
581
+ pattern: multicastPattern
582
+ });
583
+ }
584
+ if (channel(patternOrChannel)) {
585
+ if (notUndef(multicastPattern)) {
586
+ /* eslint-disable no-console */
587
+ console.warn("take(channel) takes one argument but two were provided. Second argument is ignored.");
588
+ }
589
+ return makeEffect(TAKE, {
590
+ channel: patternOrChannel
591
+ });
592
+ }
593
+ if (process.env.NODE_ENV !== 'production') {
594
+ throw new Error("take(patternOrChannel): argument " + patternOrChannel + " is not valid channel or a valid pattern");
595
+ }
596
+ }
597
+ var takeMaybe = function takeMaybe() {
598
+ var eff = take.apply(void 0, arguments);
599
+ eff.payload.maybe = true;
600
+ return eff;
601
+ };
602
+ function put(channel$1, action) {
603
+ if (process.env.NODE_ENV !== 'production') {
604
+ if (arguments.length > 1) {
605
+ check(channel$1, notUndef, 'put(channel, action): argument channel is undefined');
606
+ check(channel$1, channel, "put(channel, action): argument " + channel$1 + " is not a valid channel");
607
+ check(action, notUndef, 'put(channel, action): argument action is undefined');
608
+ } else {
609
+ check(channel$1, notUndef, 'put(action): argument action is undefined');
610
+ }
611
+ }
612
+ if (undef(action)) {
613
+ action = channel$1; // `undefined` instead of `null` to make default parameter work
614
+
615
+ channel$1 = undefined;
616
+ }
617
+ return makeEffect(PUT, {
618
+ channel: channel$1,
619
+ action: action
620
+ });
621
+ }
622
+ var putResolve = function putResolve() {
623
+ var eff = put.apply(void 0, arguments);
624
+ eff.payload.resolve = true;
625
+ return eff;
626
+ };
627
+ function all(effects) {
628
+ var eff = makeEffect(ALL, effects);
629
+ eff.combinator = true;
630
+ return eff;
631
+ }
632
+ function race(effects) {
633
+ var eff = makeEffect(RACE, effects);
634
+ eff.combinator = true;
635
+ return eff;
636
+ } // this match getFnCallDescriptor logic
637
+
638
+ var validateFnDescriptor = function validateFnDescriptor(effectName, fnDescriptor) {
639
+ check(fnDescriptor, notUndef, effectName + ": argument fn is undefined or null");
640
+ if (func(fnDescriptor)) {
641
+ return;
642
+ }
643
+ var context = null;
644
+ var fn;
645
+ if (array(fnDescriptor)) {
646
+ context = fnDescriptor[0];
647
+ fn = fnDescriptor[1];
648
+ check(fn, notUndef, effectName + ": argument of type [context, fn] has undefined or null `fn`");
649
+ } else if (object(fnDescriptor)) {
650
+ context = fnDescriptor.context;
651
+ fn = fnDescriptor.fn;
652
+ check(fn, notUndef, effectName + ": argument of type {context, fn} has undefined or null `fn`");
653
+ } else {
654
+ check(fnDescriptor, func, effectName + ": argument fn is not function");
655
+ return;
656
+ }
657
+ if (context && string(fn)) {
658
+ check(context[fn], func, effectName + ": context arguments has no such method - \"" + fn + "\"");
659
+ return;
660
+ }
661
+ check(fn, func, effectName + ": unpacked fn argument (from [context, fn] or {context, fn}) is not a function");
662
+ };
663
+ function getFnCallDescriptor(fnDescriptor, args) {
664
+ var context = null;
665
+ var fn;
666
+ if (func(fnDescriptor)) {
667
+ fn = fnDescriptor;
668
+ } else {
669
+ if (array(fnDescriptor)) {
670
+ context = fnDescriptor[0];
671
+ fn = fnDescriptor[1];
672
+ } else {
673
+ context = fnDescriptor.context;
674
+ fn = fnDescriptor.fn;
675
+ }
676
+ if (context && string(fn) && func(context[fn])) {
677
+ fn = context[fn];
678
+ }
679
+ }
680
+ return {
681
+ context: context,
682
+ fn: fn,
683
+ args: args
684
+ };
685
+ }
686
+ var isNotDelayEffect = function isNotDelayEffect(fn) {
687
+ return fn !== delay;
688
+ };
689
+ function call(fnDescriptor) {
690
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
691
+ args[_key - 1] = arguments[_key];
692
+ }
693
+ if (process.env.NODE_ENV !== 'production') {
694
+ var arg0 = typeof args[0] === 'number' ? args[0] : 'ms';
695
+ check(fnDescriptor, isNotDelayEffect, "instead of writing `yield call(delay, " + arg0 + ")` where delay is an effect from `redux-saga/effects` you should write `yield delay(" + arg0 + ")`");
696
+ validateFnDescriptor('call', fnDescriptor);
697
+ }
698
+ return makeEffect(CALL, getFnCallDescriptor(fnDescriptor, args));
699
+ }
700
+ function apply(context, fn, args) {
701
+ if (args === void 0) {
702
+ args = [];
703
+ }
704
+ var fnDescriptor = [context, fn];
705
+ if (process.env.NODE_ENV !== 'production') {
706
+ validateFnDescriptor('apply', fnDescriptor);
707
+ }
708
+ return makeEffect(CALL, getFnCallDescriptor([context, fn], args));
709
+ }
710
+ function cps(fnDescriptor) {
711
+ if (process.env.NODE_ENV !== 'production') {
712
+ validateFnDescriptor('cps', fnDescriptor);
713
+ }
714
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
715
+ args[_key2 - 1] = arguments[_key2];
716
+ }
717
+ return makeEffect(CPS, getFnCallDescriptor(fnDescriptor, args));
718
+ }
719
+ function fork(fnDescriptor) {
720
+ if (process.env.NODE_ENV !== 'production') {
721
+ validateFnDescriptor('fork', fnDescriptor);
722
+ check(fnDescriptor, function (arg) {
723
+ return !effect(arg);
724
+ }, 'fork: argument must not be an effect');
725
+ }
726
+ for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
727
+ args[_key3 - 1] = arguments[_key3];
728
+ }
729
+ return makeEffect(FORK, getFnCallDescriptor(fnDescriptor, args));
730
+ }
731
+ function spawn(fnDescriptor) {
732
+ if (process.env.NODE_ENV !== 'production') {
733
+ validateFnDescriptor('spawn', fnDescriptor);
734
+ }
735
+ for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
736
+ args[_key4 - 1] = arguments[_key4];
737
+ }
738
+ return detach(fork.apply(void 0, [fnDescriptor].concat(args)));
739
+ }
740
+ function join(taskOrTasks) {
741
+ if (process.env.NODE_ENV !== 'production') {
742
+ if (arguments.length > 1) {
743
+ throw new Error('join(...tasks) is not supported any more. Please use join([...tasks]) to join multiple tasks.');
744
+ }
745
+ if (array(taskOrTasks)) {
746
+ taskOrTasks.forEach(function (t) {
747
+ check(t, task, "join([...tasks]): argument " + t + " is not a valid Task object " + TEST_HINT);
748
+ });
749
+ } else {
750
+ check(taskOrTasks, task, "join(task): argument " + taskOrTasks + " is not a valid Task object " + TEST_HINT);
751
+ }
752
+ }
753
+ return makeEffect(JOIN, taskOrTasks);
754
+ }
755
+ function cancel(taskOrTasks) {
756
+ if (taskOrTasks === void 0) {
757
+ taskOrTasks = SELF_CANCELLATION;
758
+ }
759
+ if (process.env.NODE_ENV !== 'production') {
760
+ if (arguments.length > 1) {
761
+ throw new Error('cancel(...tasks) is not supported any more. Please use cancel([...tasks]) to cancel multiple tasks.');
762
+ }
763
+ if (array(taskOrTasks)) {
764
+ taskOrTasks.forEach(function (t) {
765
+ check(t, task, "cancel([...tasks]): argument " + t + " is not a valid Task object " + TEST_HINT);
766
+ });
767
+ } else if (taskOrTasks !== SELF_CANCELLATION && notUndef(taskOrTasks)) {
768
+ check(taskOrTasks, task, "cancel(task): argument " + taskOrTasks + " is not a valid Task object " + TEST_HINT);
769
+ }
770
+ }
771
+ return makeEffect(CANCEL, taskOrTasks);
772
+ }
773
+ function select(selector) {
774
+ if (selector === void 0) {
775
+ selector = identity;
776
+ }
777
+ for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {
778
+ args[_key5 - 1] = arguments[_key5];
779
+ }
780
+ if (process.env.NODE_ENV !== 'production' && arguments.length) {
781
+ check(arguments[0], notUndef, 'select(selector, [...]): argument selector is undefined');
782
+ check(selector, func, "select(selector, [...]): argument " + selector + " is not a function");
783
+ }
784
+ return makeEffect(SELECT, {
785
+ selector: selector,
786
+ args: args
787
+ });
788
+ }
789
+ /**
790
+ channel(pattern, [buffer]) => creates a proxy channel for store actions
791
+ **/
792
+
793
+ function actionChannel(pattern$1, buffer$1) {
794
+ if (process.env.NODE_ENV !== 'production') {
795
+ check(pattern$1, pattern, 'actionChannel(pattern,...): argument pattern is not valid');
796
+ if (arguments.length > 1) {
797
+ check(buffer$1, notUndef, 'actionChannel(pattern, buffer): argument buffer is undefined');
798
+ check(buffer$1, buffer, "actionChannel(pattern, buffer): argument " + buffer$1 + " is not a valid buffer");
799
+ }
800
+ }
801
+ return makeEffect(ACTION_CHANNEL, {
802
+ pattern: pattern$1,
803
+ buffer: buffer$1
804
+ });
805
+ }
806
+ function cancelled() {
807
+ return makeEffect(CANCELLED, {});
808
+ }
809
+ function flush(channel$1) {
810
+ if (process.env.NODE_ENV !== 'production') {
811
+ check(channel$1, channel, "flush(channel): argument " + channel$1 + " is not valid channel");
812
+ }
813
+ return makeEffect(FLUSH, channel$1);
814
+ }
815
+ function getContext(prop) {
816
+ if (process.env.NODE_ENV !== 'production') {
817
+ check(prop, string, "getContext(prop): argument " + prop + " is not a string");
818
+ }
819
+ return makeEffect(GET_CONTEXT, prop);
820
+ }
821
+ function setContext(props) {
822
+ if (process.env.NODE_ENV !== 'production') {
823
+ check(props, object, createSetContextWarning(null, props));
824
+ }
825
+ return makeEffect(SET_CONTEXT, props);
826
+ }
827
+ var delay = /*#__PURE__*/
828
+ call.bind(null, delayP);
829
+
830
+ var done = function done(value) {
831
+ return {
832
+ done: true,
833
+ value: value
834
+ };
835
+ };
836
+ var qEnd = {};
837
+ function safeName(patternOrChannel) {
838
+ if (channel(patternOrChannel)) {
839
+ return 'channel';
840
+ }
841
+ if (stringableFunc(patternOrChannel)) {
842
+ return String(patternOrChannel);
843
+ }
844
+ if (func(patternOrChannel)) {
845
+ return patternOrChannel.name;
846
+ }
847
+ return String(patternOrChannel);
848
+ }
849
+ function fsmIterator(fsm, startState, name) {
850
+ var stateUpdater,
851
+ errorState,
852
+ effect,
853
+ nextState = startState;
854
+ function next(arg, error) {
855
+ if (nextState === qEnd) {
856
+ return done(arg);
857
+ }
858
+ if (error && !errorState) {
859
+ nextState = qEnd;
860
+ throw error;
861
+ } else {
862
+ stateUpdater && stateUpdater(arg);
863
+ var currentState = error ? fsm[errorState](error) : fsm[nextState]();
864
+ nextState = currentState.nextState;
865
+ effect = currentState.effect;
866
+ stateUpdater = currentState.stateUpdater;
867
+ errorState = currentState.errorState;
868
+ return nextState === qEnd ? done(arg) : effect;
869
+ }
870
+ }
871
+ return makeIterator(next, function (error) {
872
+ return next(null, error);
873
+ }, name);
874
+ }
875
+ function takeEvery(patternOrChannel, worker) {
876
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
877
+ args[_key - 2] = arguments[_key];
878
+ }
879
+ var yTake = {
880
+ done: false,
881
+ value: take(patternOrChannel)
882
+ };
883
+ var yFork = function yFork(ac) {
884
+ return {
885
+ done: false,
886
+ value: fork.apply(void 0, [worker].concat(args, [ac]))
887
+ };
888
+ };
889
+ var action,
890
+ setAction = function setAction(ac) {
891
+ return action = ac;
892
+ };
893
+ return fsmIterator({
894
+ q1: function q1() {
895
+ return {
896
+ nextState: 'q2',
897
+ effect: yTake,
898
+ stateUpdater: setAction
899
+ };
900
+ },
901
+ q2: function q2() {
902
+ return {
903
+ nextState: 'q1',
904
+ effect: yFork(action)
905
+ };
906
+ }
907
+ }, 'q1', "takeEvery(" + safeName(patternOrChannel) + ", " + worker.name + ")");
908
+ }
909
+ function takeLatest(patternOrChannel, worker) {
910
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
911
+ args[_key - 2] = arguments[_key];
912
+ }
913
+ var yTake = {
914
+ done: false,
915
+ value: take(patternOrChannel)
916
+ };
917
+ var yFork = function yFork(ac) {
918
+ return {
919
+ done: false,
920
+ value: fork.apply(void 0, [worker].concat(args, [ac]))
921
+ };
922
+ };
923
+ var yCancel = function yCancel(task) {
924
+ return {
925
+ done: false,
926
+ value: cancel(task)
927
+ };
928
+ };
929
+ var task, action;
930
+ var setTask = function setTask(t) {
931
+ return task = t;
932
+ };
933
+ var setAction = function setAction(ac) {
934
+ return action = ac;
935
+ };
936
+ return fsmIterator({
937
+ q1: function q1() {
938
+ return {
939
+ nextState: 'q2',
940
+ effect: yTake,
941
+ stateUpdater: setAction
942
+ };
943
+ },
944
+ q2: function q2() {
945
+ return task ? {
946
+ nextState: 'q3',
947
+ effect: yCancel(task)
948
+ } : {
949
+ nextState: 'q1',
950
+ effect: yFork(action),
951
+ stateUpdater: setTask
952
+ };
953
+ },
954
+ q3: function q3() {
955
+ return {
956
+ nextState: 'q1',
957
+ effect: yFork(action),
958
+ stateUpdater: setTask
959
+ };
960
+ }
961
+ }, 'q1', "takeLatest(" + safeName(patternOrChannel) + ", " + worker.name + ")");
962
+ }
963
+ function takeLeading(patternOrChannel, worker) {
964
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
965
+ args[_key - 2] = arguments[_key];
966
+ }
967
+ var yTake = {
968
+ done: false,
969
+ value: take(patternOrChannel)
970
+ };
971
+ var yCall = function yCall(ac) {
972
+ return {
973
+ done: false,
974
+ value: call.apply(void 0, [worker].concat(args, [ac]))
975
+ };
976
+ };
977
+ var action;
978
+ var setAction = function setAction(ac) {
979
+ return action = ac;
980
+ };
981
+ return fsmIterator({
982
+ q1: function q1() {
983
+ return {
984
+ nextState: 'q2',
985
+ effect: yTake,
986
+ stateUpdater: setAction
987
+ };
988
+ },
989
+ q2: function q2() {
990
+ return {
991
+ nextState: 'q1',
992
+ effect: yCall(action)
993
+ };
994
+ }
995
+ }, 'q1', "takeLeading(" + safeName(patternOrChannel) + ", " + worker.name + ")");
996
+ }
997
+ function throttle(delayLength, patternOrChannel, worker) {
998
+ for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
999
+ args[_key - 3] = arguments[_key];
1000
+ }
1001
+ var action, channel$1;
1002
+ var yTake = function yTake() {
1003
+ return {
1004
+ done: false,
1005
+ value: take(channel$1)
1006
+ };
1007
+ };
1008
+ var yFork = function yFork(ac) {
1009
+ return {
1010
+ done: false,
1011
+ value: fork.apply(void 0, [worker].concat(args, [ac]))
1012
+ };
1013
+ };
1014
+ var yDelay = {
1015
+ done: false,
1016
+ value: delay(delayLength)
1017
+ };
1018
+ var setAction = function setAction(ac) {
1019
+ return action = ac;
1020
+ };
1021
+ var setChannel = function setChannel(ch) {
1022
+ return channel$1 = ch;
1023
+ };
1024
+ var needsChannel = !channel(patternOrChannel);
1025
+ if (!needsChannel) {
1026
+ setChannel(patternOrChannel);
1027
+ }
1028
+ return fsmIterator({
1029
+ q1: function q1() {
1030
+ var yActionChannel = {
1031
+ done: false,
1032
+ value: actionChannel(patternOrChannel, sliding(1))
1033
+ };
1034
+ return {
1035
+ nextState: 'q2',
1036
+ effect: yActionChannel,
1037
+ stateUpdater: setChannel
1038
+ };
1039
+ },
1040
+ q2: function q2() {
1041
+ return {
1042
+ nextState: 'q3',
1043
+ effect: yTake(),
1044
+ stateUpdater: setAction
1045
+ };
1046
+ },
1047
+ q3: function q3() {
1048
+ return {
1049
+ nextState: 'q4',
1050
+ effect: yFork(action)
1051
+ };
1052
+ },
1053
+ q4: function q4() {
1054
+ return {
1055
+ nextState: 'q2',
1056
+ effect: yDelay
1057
+ };
1058
+ }
1059
+ }, needsChannel ? 'q1' : 'q2', "throttle(" + safeName(patternOrChannel) + ", " + worker.name + ")");
1060
+ }
1061
+ function retry(maxTries, delayLength, fn) {
1062
+ var counter = maxTries;
1063
+ for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
1064
+ args[_key - 3] = arguments[_key];
1065
+ }
1066
+ var yCall = {
1067
+ done: false,
1068
+ value: call.apply(void 0, [fn].concat(args))
1069
+ };
1070
+ var yDelay = {
1071
+ done: false,
1072
+ value: delay(delayLength)
1073
+ };
1074
+ return fsmIterator({
1075
+ q1: function q1() {
1076
+ return {
1077
+ nextState: 'q2',
1078
+ effect: yCall,
1079
+ errorState: 'q10'
1080
+ };
1081
+ },
1082
+ q2: function q2() {
1083
+ return {
1084
+ nextState: qEnd
1085
+ };
1086
+ },
1087
+ q10: function q10(error) {
1088
+ counter -= 1;
1089
+ if (counter <= 0) {
1090
+ throw error;
1091
+ }
1092
+ return {
1093
+ nextState: 'q1',
1094
+ effect: yDelay
1095
+ };
1096
+ }
1097
+ }, 'q1', "retry(" + fn.name + ")");
1098
+ }
1099
+ function debounceHelper(delayLength, patternOrChannel, worker) {
1100
+ for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
1101
+ args[_key - 3] = arguments[_key];
1102
+ }
1103
+ var action, raceOutput;
1104
+ var yTake = {
1105
+ done: false,
1106
+ value: take(patternOrChannel)
1107
+ };
1108
+ var yRace = {
1109
+ done: false,
1110
+ value: race({
1111
+ action: take(patternOrChannel),
1112
+ debounce: delay(delayLength)
1113
+ })
1114
+ };
1115
+ var yFork = function yFork(ac) {
1116
+ return {
1117
+ done: false,
1118
+ value: fork.apply(void 0, [worker].concat(args, [ac]))
1119
+ };
1120
+ };
1121
+ var yNoop = function yNoop(value) {
1122
+ return {
1123
+ done: false,
1124
+ value: value
1125
+ };
1126
+ };
1127
+ var setAction = function setAction(ac) {
1128
+ return action = ac;
1129
+ };
1130
+ var setRaceOutput = function setRaceOutput(ro) {
1131
+ return raceOutput = ro;
1132
+ };
1133
+ return fsmIterator({
1134
+ q1: function q1() {
1135
+ return {
1136
+ nextState: 'q2',
1137
+ effect: yTake,
1138
+ stateUpdater: setAction
1139
+ };
1140
+ },
1141
+ q2: function q2() {
1142
+ return {
1143
+ nextState: 'q3',
1144
+ effect: yRace,
1145
+ stateUpdater: setRaceOutput
1146
+ };
1147
+ },
1148
+ q3: function q3() {
1149
+ return raceOutput.debounce ? {
1150
+ nextState: 'q1',
1151
+ effect: yFork(action)
1152
+ } : {
1153
+ nextState: 'q2',
1154
+ effect: yNoop(raceOutput.action),
1155
+ stateUpdater: setAction
1156
+ };
1157
+ }
1158
+ }, 'q1', "debounce(" + safeName(patternOrChannel) + ", " + worker.name + ")");
1159
+ }
1160
+ var validateTakeEffect = function validateTakeEffect(fn, patternOrChannel, worker) {
1161
+ check(patternOrChannel, notUndef, fn.name + " requires a pattern or channel");
1162
+ check(worker, notUndef, fn.name + " requires a saga parameter");
1163
+ };
1164
+ function takeEvery$1(patternOrChannel, worker) {
1165
+ if (process.env.NODE_ENV !== 'production') {
1166
+ validateTakeEffect(takeEvery$1, patternOrChannel, worker);
1167
+ }
1168
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
1169
+ args[_key - 2] = arguments[_key];
1170
+ }
1171
+ return fork.apply(void 0, [takeEvery, patternOrChannel, worker].concat(args));
1172
+ }
1173
+ function takeLatest$1(patternOrChannel, worker) {
1174
+ if (process.env.NODE_ENV !== 'production') {
1175
+ validateTakeEffect(takeLatest$1, patternOrChannel, worker);
1176
+ }
1177
+ for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
1178
+ args[_key2 - 2] = arguments[_key2];
1179
+ }
1180
+ return fork.apply(void 0, [takeLatest, patternOrChannel, worker].concat(args));
1181
+ }
1182
+ function takeLeading$1(patternOrChannel, worker) {
1183
+ if (process.env.NODE_ENV !== 'production') {
1184
+ validateTakeEffect(takeLeading$1, patternOrChannel, worker);
1185
+ }
1186
+ for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
1187
+ args[_key3 - 2] = arguments[_key3];
1188
+ }
1189
+ return fork.apply(void 0, [takeLeading, patternOrChannel, worker].concat(args));
1190
+ }
1191
+ function throttle$1(ms, patternOrChannel, worker) {
1192
+ if (process.env.NODE_ENV !== 'production') {
1193
+ check(patternOrChannel, notUndef, "throttle requires a pattern or channel");
1194
+ check(worker, notUndef, 'throttle requires a saga parameter');
1195
+ }
1196
+ for (var _len4 = arguments.length, args = new Array(_len4 > 3 ? _len4 - 3 : 0), _key4 = 3; _key4 < _len4; _key4++) {
1197
+ args[_key4 - 3] = arguments[_key4];
1198
+ }
1199
+ return fork.apply(void 0, [throttle, ms, patternOrChannel, worker].concat(args));
1200
+ }
1201
+ function retry$1(maxTries, delayLength, worker) {
1202
+ for (var _len5 = arguments.length, args = new Array(_len5 > 3 ? _len5 - 3 : 0), _key5 = 3; _key5 < _len5; _key5++) {
1203
+ args[_key5 - 3] = arguments[_key5];
1204
+ }
1205
+ return call.apply(void 0, [retry, maxTries, delayLength, worker].concat(args));
1206
+ }
1207
+ function debounce(delayLength, pattern, worker) {
1208
+ for (var _len6 = arguments.length, args = new Array(_len6 > 3 ? _len6 - 3 : 0), _key6 = 3; _key6 < _len6; _key6++) {
1209
+ args[_key6 - 3] = arguments[_key6];
1210
+ }
1211
+ return fork.apply(void 0, [debounceHelper, delayLength, pattern, worker].concat(args));
1212
+ }
1213
+
1214
+ var sagaEffects = /*#__PURE__*/Object.freeze({
1215
+ __proto__: null,
1216
+ actionChannel: actionChannel,
1217
+ all: all,
1218
+ apply: apply,
1219
+ call: call,
1220
+ cancel: cancel,
1221
+ cancelled: cancelled,
1222
+ cps: cps,
1223
+ debounce: debounce,
1224
+ delay: delay,
1225
+ effectTypes: effectTypes,
1226
+ flush: flush,
1227
+ fork: fork,
1228
+ getContext: getContext,
1229
+ join: join,
1230
+ put: put,
1231
+ putResolve: putResolve,
1232
+ race: race,
1233
+ retry: retry$1,
1234
+ select: select,
1235
+ setContext: setContext,
1236
+ spawn: spawn,
1237
+ take: take,
1238
+ takeEvery: takeEvery$1,
1239
+ takeLatest: takeLatest$1,
1240
+ takeLeading: takeLeading$1,
1241
+ takeMaybe: takeMaybe,
1242
+ throttle: throttle$1
1243
+ });
1244
+
1245
+ function prefixType(type, model) {
1246
+ var prefixedType = "".concat(model.namespace).concat(NAMESPACE_SEP).concat(type);
1247
+ var typeWithoutAffix = prefixedType.replace(/\/@@[^/]+?$/, '');
1248
+ var reducer = Array.isArray(model.reducers) ? model.reducers[0][typeWithoutAffix] : model.reducers && model.reducers[typeWithoutAffix];
1249
+ if (reducer || model.effects && model.effects[typeWithoutAffix]) {
1250
+ return prefixedType;
1251
+ }
1252
+ return type;
1253
+ }
1254
+
1255
+ function getSaga(effects, model, onError, onEffect) {
1256
+ var opts = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
1257
+ return /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
1258
+ var _loop, key;
1259
+ return _regeneratorRuntime().wrap(function _callee2$(_context3) {
1260
+ while (1) switch (_context3.prev = _context3.next) {
1261
+ case 0:
1262
+ _loop = /*#__PURE__*/_regeneratorRuntime().mark(function _loop() {
1263
+ var watcher, task;
1264
+ return _regeneratorRuntime().wrap(function _loop$(_context2) {
1265
+ while (1) switch (_context2.prev = _context2.next) {
1266
+ case 0:
1267
+ if (!Object.prototype.hasOwnProperty.call(effects, key)) {
1268
+ _context2.next = 7;
1269
+ break;
1270
+ }
1271
+ watcher = getWatcher(key, effects[key], model, onError, onEffect, opts);
1272
+ _context2.next = 4;
1273
+ return fork(watcher);
1274
+ case 4:
1275
+ task = _context2.sent;
1276
+ _context2.next = 7;
1277
+ return fork( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
1278
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
1279
+ while (1) switch (_context.prev = _context.next) {
1280
+ case 0:
1281
+ _context.next = 2;
1282
+ return take("".concat(model.namespace, "/@@CANCEL_EFFECTS"));
1283
+ case 2:
1284
+ _context.next = 4;
1285
+ return cancel(task);
1286
+ case 4:
1287
+ case "end":
1288
+ return _context.stop();
1289
+ }
1290
+ }, _callee);
1291
+ }));
1292
+ case 7:
1293
+ case "end":
1294
+ return _context2.stop();
1295
+ }
1296
+ }, _loop);
1297
+ });
1298
+ _context3.t0 = _regeneratorRuntime().keys(effects);
1299
+ case 2:
1300
+ if ((_context3.t1 = _context3.t0()).done) {
1301
+ _context3.next = 7;
1302
+ break;
1303
+ }
1304
+ key = _context3.t1.value;
1305
+ return _context3.delegateYield(_loop(), "t2", 5);
1306
+ case 5:
1307
+ _context3.next = 2;
1308
+ break;
1309
+ case 7:
1310
+ case "end":
1311
+ return _context3.stop();
1312
+ }
1313
+ }, _callee2);
1314
+ });
1315
+ }
1316
+ function getWatcher(key, _effect, model, onError, onEffect, options) {
1317
+ var _marked = /*#__PURE__*/_regeneratorRuntime().mark(sagaWithCatch);
1318
+ var effect = _effect;
1319
+ var type = 'takeEvery';
1320
+ var ms;
1321
+ var delayMs;
1322
+ if (Array.isArray(_effect)) {
1323
+ var _effect2 = _slicedToArray(_effect, 1);
1324
+ effect = _effect2[0];
1325
+ var opts = _effect[1];
1326
+ if (opts && opts.type) {
1327
+ type = opts.type;
1328
+ if (type === 'throttle') {
1329
+ invariant(opts.ms, 'app.start: opts.ms should be defined if type is throttle');
1330
+ ms = opts.ms;
1331
+ }
1332
+ if (type === 'poll') {
1333
+ invariant(opts.delay, 'app.start: opts.delay should be defined if type is poll');
1334
+ delayMs = opts.delay;
1335
+ }
1336
+ }
1337
+ invariant(['watcher', 'takeEvery', 'takeLatest', 'throttle', 'poll'].indexOf(type) > -1, 'app.start: effect type should be takeEvery, takeLatest, throttle, poll or watcher');
1338
+ }
1339
+ function noop() {}
1340
+ function sagaWithCatch() {
1341
+ var _len,
1342
+ args,
1343
+ _key,
1344
+ _ref,
1345
+ _ref$__dva_resolve,
1346
+ resolve,
1347
+ _ref$__dva_reject,
1348
+ reject,
1349
+ ret,
1350
+ _args4 = arguments;
1351
+ return _regeneratorRuntime().wrap(function sagaWithCatch$(_context4) {
1352
+ while (1) switch (_context4.prev = _context4.next) {
1353
+ case 0:
1354
+ for (_len = _args4.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1355
+ args[_key] = _args4[_key];
1356
+ }
1357
+ _ref = args.length > 0 ? args[0] : {}, _ref$__dva_resolve = _ref.__dva_resolve, resolve = _ref$__dva_resolve === void 0 ? noop : _ref$__dva_resolve, _ref$__dva_reject = _ref.__dva_reject, reject = _ref$__dva_reject === void 0 ? noop : _ref$__dva_reject;
1358
+ _context4.prev = 2;
1359
+ _context4.next = 5;
1360
+ return put({
1361
+ type: "".concat(key).concat(NAMESPACE_SEP, "@@start")
1362
+ });
1363
+ case 5:
1364
+ _context4.next = 7;
1365
+ return effect.apply(void 0, _toConsumableArray(args.concat(createEffects(model, options))));
1366
+ case 7:
1367
+ ret = _context4.sent;
1368
+ _context4.next = 10;
1369
+ return put({
1370
+ type: "".concat(key).concat(NAMESPACE_SEP, "@@end")
1371
+ });
1372
+ case 10:
1373
+ resolve(ret);
1374
+ _context4.next = 17;
1375
+ break;
1376
+ case 13:
1377
+ _context4.prev = 13;
1378
+ _context4.t0 = _context4["catch"](2);
1379
+ onError(_context4.t0, {
1380
+ key: key,
1381
+ effectArgs: args
1382
+ });
1383
+ if (!_context4.t0._doNotReject) {
1384
+ reject(_context4.t0);
1385
+ }
1386
+ case 17:
1387
+ case "end":
1388
+ return _context4.stop();
1389
+ }
1390
+ }, _marked, null, [[2, 13]]);
1391
+ }
1392
+ var sagaWithOnEffect = applyOnEffect(onEffect, sagaWithCatch, model, key);
1393
+ switch (type) {
1394
+ case 'watcher':
1395
+ return sagaWithCatch;
1396
+ case 'takeLatest':
1397
+ return /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
1398
+ return _regeneratorRuntime().wrap(function _callee3$(_context5) {
1399
+ while (1) switch (_context5.prev = _context5.next) {
1400
+ case 0:
1401
+ _context5.next = 2;
1402
+ return takeLatest$1(key, sagaWithOnEffect);
1403
+ case 2:
1404
+ case "end":
1405
+ return _context5.stop();
1406
+ }
1407
+ }, _callee3);
1408
+ });
1409
+ case 'throttle':
1410
+ return /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
1411
+ return _regeneratorRuntime().wrap(function _callee4$(_context6) {
1412
+ while (1) switch (_context6.prev = _context6.next) {
1413
+ case 0:
1414
+ _context6.next = 2;
1415
+ return throttle$1(ms, key, sagaWithOnEffect);
1416
+ case 2:
1417
+ case "end":
1418
+ return _context6.stop();
1419
+ }
1420
+ }, _callee4);
1421
+ });
1422
+ case 'poll':
1423
+ return /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
1424
+ var _marked2, delay, pollSagaWorker, call$1, take$1, race$1, action;
1425
+ return _regeneratorRuntime().wrap(function _callee5$(_context8) {
1426
+ while (1) switch (_context8.prev = _context8.next) {
1427
+ case 0:
1428
+ pollSagaWorker = function _pollSagaWorker(sagaEffectCollection, action) {
1429
+ var call;
1430
+ return _regeneratorRuntime().wrap(function pollSagaWorker$(_context7) {
1431
+ while (1) switch (_context7.prev = _context7.next) {
1432
+ case 0:
1433
+ call = sagaEffectCollection.call;
1434
+ case 1:
1435
+ _context7.next = 4;
1436
+ return call(sagaWithOnEffect, action);
1437
+ case 4:
1438
+ _context7.next = 6;
1439
+ return call(delay, delayMs);
1440
+ case 6:
1441
+ _context7.next = 1;
1442
+ break;
1443
+ case 8:
1444
+ case "end":
1445
+ return _context7.stop();
1446
+ }
1447
+ }, _marked2);
1448
+ };
1449
+ delay = function _delay(timeout) {
1450
+ return new Promise(function (resolve) {
1451
+ return setTimeout(resolve, timeout);
1452
+ });
1453
+ };
1454
+ _marked2 = /*#__PURE__*/_regeneratorRuntime().mark(pollSagaWorker);
1455
+ call$1 = call, take$1 = take, race$1 = race;
1456
+ case 4:
1457
+ _context8.next = 7;
1458
+ return take$1("".concat(key, "-start"));
1459
+ case 7:
1460
+ action = _context8.sent;
1461
+ _context8.next = 10;
1462
+ return race$1([call$1(pollSagaWorker, sagaEffects, action), take$1("".concat(key, "-stop"))]);
1463
+ case 10:
1464
+ _context8.next = 4;
1465
+ break;
1466
+ case 12:
1467
+ case "end":
1468
+ return _context8.stop();
1469
+ }
1470
+ }, _callee5);
1471
+ });
1472
+ default:
1473
+ return /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
1474
+ return _regeneratorRuntime().wrap(function _callee6$(_context9) {
1475
+ while (1) switch (_context9.prev = _context9.next) {
1476
+ case 0:
1477
+ _context9.next = 2;
1478
+ return takeEvery$1(key, sagaWithOnEffect);
1479
+ case 2:
1480
+ case "end":
1481
+ return _context9.stop();
1482
+ }
1483
+ }, _callee6);
1484
+ });
1485
+ }
1486
+ }
1487
+ function createEffects(model, opts) {
1488
+ function assertAction(type, name) {
1489
+ invariant(type, 'dispatch: action should be a plain Object with type');
1490
+ var _opts$namespacePrefix = opts.namespacePrefixWarning,
1491
+ namespacePrefixWarning = _opts$namespacePrefix === void 0 ? true : _opts$namespacePrefix;
1492
+ if (namespacePrefixWarning) {
1493
+ warning(type.indexOf("".concat(model.namespace).concat(NAMESPACE_SEP)) !== 0, "[".concat(name, "] ").concat(type, " should not be prefixed with namespace ").concat(model.namespace));
1494
+ }
1495
+ }
1496
+ function put$1(action) {
1497
+ var type = action.type;
1498
+ assertAction(type, 'sagaEffects.put');
1499
+ return put(_objectSpread2(_objectSpread2({}, action), {}, {
1500
+ type: prefixType(type, model)
1501
+ }));
1502
+ }
1503
+
1504
+ // The operator `put` doesn't block waiting the returned promise to resolve.
1505
+ // Using `put.resolve` will wait until the promsie resolve/reject before resuming.
1506
+ // It will be helpful to organize multi-effects in order,
1507
+ // and increase the reusability by seperate the effect in stand-alone pieces.
1508
+ // https://github.com/redux-saga/redux-saga/issues/336
1509
+ function putResolve(action) {
1510
+ var type = action.type;
1511
+ assertAction(type, 'sagaEffects.put.resolve');
1512
+ return put.resolve(_objectSpread2(_objectSpread2({}, action), {}, {
1513
+ type: prefixType(type, model)
1514
+ }));
1515
+ }
1516
+ put$1.resolve = putResolve;
1517
+ function take$1(type) {
1518
+ if (typeof type === 'string') {
1519
+ assertAction(type, 'sagaEffects.take');
1520
+ return take(prefixType(type, model));
1521
+ } else if (Array.isArray(type)) {
1522
+ return take(type.map(function (t) {
1523
+ if (typeof t === 'string') {
1524
+ assertAction(t, 'sagaEffects.take');
1525
+ return prefixType(t, model);
1526
+ }
1527
+ return t;
1528
+ }));
1529
+ } else {
1530
+ return take(type);
1531
+ }
1532
+ }
1533
+ return _objectSpread2(_objectSpread2({}, sagaEffects), {}, {
1534
+ put: put$1,
1535
+ take: take$1
1536
+ });
1537
+ }
1538
+ function applyOnEffect(fns, effect, model, key) {
1539
+ var _iterator = _createForOfIteratorHelper(fns),
1540
+ _step;
1541
+ try {
1542
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
1543
+ var fn = _step.value;
1544
+ effect = fn(effect, sagaEffects, model, key);
1545
+ }
1546
+ } catch (err) {
1547
+ _iterator.e(err);
1548
+ } finally {
1549
+ _iterator.f();
1550
+ }
1551
+ return effect;
1552
+ }
1553
+
1554
+ function _classCallCheck(instance, Constructor) {
1555
+ if (!(instance instanceof Constructor)) {
1556
+ throw new TypeError("Cannot call a class as a function");
1557
+ }
1558
+ }
1559
+
1560
+ function _defineProperties(target, props) {
1561
+ for (var i = 0; i < props.length; i++) {
1562
+ var descriptor = props[i];
1563
+ descriptor.enumerable = descriptor.enumerable || false;
1564
+ descriptor.configurable = true;
1565
+ if ("value" in descriptor) descriptor.writable = true;
1566
+ Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);
1567
+ }
1568
+ }
1569
+ function _createClass(Constructor, protoProps, staticProps) {
1570
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
1571
+ if (staticProps) _defineProperties(Constructor, staticProps);
1572
+ Object.defineProperty(Constructor, "prototype", {
1573
+ writable: false
1574
+ });
1575
+ return Constructor;
1576
+ }
1577
+
1578
+ var hooks = ['onError', 'onStateChange', 'onAction', 'onHmr', 'onReducer', 'onEffect', 'extraReducers', 'extraEnhancers', '_handleActions'];
1579
+ function filterHooks(obj) {
1580
+ return Object.keys(obj).reduce(function (memo, key) {
1581
+ if (hooks.indexOf(key) > -1) {
1582
+ memo[key] = obj[key];
1583
+ }
1584
+ return memo;
1585
+ }, {});
1586
+ }
1587
+ var Plugin = /*#__PURE__*/function () {
1588
+ function Plugin() {
1589
+ _classCallCheck(this, Plugin);
1590
+ this._handleActions = null;
1591
+ this.hooks = hooks.reduce(function (memo, key) {
1592
+ memo[key] = [];
1593
+ return memo;
1594
+ }, {});
1595
+ }
1596
+ _createClass(Plugin, [{
1597
+ key: "use",
1598
+ value: function use(plugin) {
1599
+ invariant(isPlainObject(plugin), 'plugin.use: plugin should be plain object');
1600
+ var hk = this.hooks;
1601
+ for (var key in plugin) {
1602
+ if (Object.prototype.hasOwnProperty.call(plugin, key)) {
1603
+ invariant(hk[key], "plugin.use: unknown plugin property: ".concat(key));
1604
+ if (key === '_handleActions') {
1605
+ this._handleActions = plugin[key];
1606
+ } else if (key === 'extraEnhancers') {
1607
+ hk[key] = plugin[key];
1608
+ } else {
1609
+ hk[key].push(plugin[key]);
1610
+ }
1611
+ }
1612
+ }
1613
+ }
1614
+ }, {
1615
+ key: "apply",
1616
+ value: function apply(key, defaultHandler) {
1617
+ var hk = this.hooks;
1618
+ var validApplyHooks = ['onError', 'onHmr'];
1619
+ invariant(validApplyHooks.indexOf(key) > -1, "plugin.apply: hook ".concat(key, " cannot be applied"));
1620
+ var fns = hk[key];
1621
+ return function () {
1622
+ if (fns.length) {
1623
+ var _iterator = _createForOfIteratorHelper(fns),
1624
+ _step;
1625
+ try {
1626
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
1627
+ var fn = _step.value;
1628
+ fn.apply(void 0, arguments);
1629
+ }
1630
+ } catch (err) {
1631
+ _iterator.e(err);
1632
+ } finally {
1633
+ _iterator.f();
1634
+ }
1635
+ } else if (defaultHandler) {
1636
+ defaultHandler.apply(void 0, arguments);
1637
+ }
1638
+ };
1639
+ }
1640
+ }, {
1641
+ key: "get",
1642
+ value: function get(key) {
1643
+ var hk = this.hooks;
1644
+ invariant(key in hk, "plugin.get: hook ".concat(key, " cannot be got"));
1645
+ if (key === 'extraReducers') {
1646
+ return getExtraReducers(hk[key]);
1647
+ } else if (key === 'onReducer') {
1648
+ return getOnReducer(hk[key]);
1649
+ } else {
1650
+ return hk[key];
1651
+ }
1652
+ }
1653
+ }]);
1654
+ return Plugin;
1655
+ }();
1656
+ function getExtraReducers(hook) {
1657
+ var ret = {};
1658
+ var _iterator2 = _createForOfIteratorHelper(hook),
1659
+ _step2;
1660
+ try {
1661
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
1662
+ var reducerObj = _step2.value;
1663
+ ret = _objectSpread2(_objectSpread2({}, ret), reducerObj);
1664
+ }
1665
+ } catch (err) {
1666
+ _iterator2.e(err);
1667
+ } finally {
1668
+ _iterator2.f();
1669
+ }
1670
+ return ret;
1671
+ }
1672
+ function getOnReducer(hook) {
1673
+ return function (reducer) {
1674
+ var _iterator3 = _createForOfIteratorHelper(hook),
1675
+ _step3;
1676
+ try {
1677
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
1678
+ var reducerEnhancer = _step3.value;
1679
+ reducer = reducerEnhancer(reducer);
1680
+ }
1681
+ } catch (err) {
1682
+ _iterator3.e(err);
1683
+ } finally {
1684
+ _iterator3.f();
1685
+ }
1686
+ return reducer;
1687
+ };
1688
+ }
1689
+
1690
+ function _toArray(arr) {
1691
+ return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest();
1692
+ }
1693
+
1694
+ function prefix(obj, namespace, type) {
1695
+ return Object.keys(obj).reduce(function (memo, key) {
1696
+ warning(key.indexOf("".concat(namespace).concat(NAMESPACE_SEP)) !== 0, "[prefixNamespace]: ".concat(type, " ").concat(key, " should not be prefixed with namespace ").concat(namespace));
1697
+ var newKey = "".concat(namespace).concat(NAMESPACE_SEP).concat(key);
1698
+ memo[newKey] = obj[key];
1699
+ return memo;
1700
+ }, {});
1701
+ }
1702
+ function prefixNamespace(model) {
1703
+ var namespace = model.namespace,
1704
+ reducers = model.reducers,
1705
+ effects = model.effects;
1706
+ if (reducers) {
1707
+ if (isArray(reducers)) {
1708
+ // 需要复制一份,不能直接修改 model.reducers[0], 会导致微前端场景下,重复添加前缀
1709
+ var _reducers = _toArray(reducers),
1710
+ reducer = _reducers[0],
1711
+ rest = _reducers.slice(1);
1712
+ model.reducers = [prefix(reducer, namespace, 'reducer')].concat(_toConsumableArray(rest));
1713
+ } else {
1714
+ model.reducers = prefix(reducers, namespace, 'reducer');
1715
+ }
1716
+ }
1717
+ if (effects) {
1718
+ model.effects = prefix(effects, namespace, 'effect');
1719
+ }
1720
+ return model;
1721
+ }
1722
+
1723
+ function prefixedDispatch(dispatch, model) {
1724
+ return function (action) {
1725
+ var type = action.type;
1726
+ invariant(type, 'dispatch: action should be a plain Object with type');
1727
+ warning(type.indexOf("".concat(model.namespace).concat(NAMESPACE_SEP)) !== 0, "dispatch: ".concat(type, " should not be prefixed with namespace ").concat(model.namespace));
1728
+ return dispatch(_objectSpread2(_objectSpread2({}, action), {}, {
1729
+ type: prefixType(type, model)
1730
+ }));
1731
+ };
1732
+ }
1733
+
1734
+ function run(subs, model, app, onError) {
1735
+ var funcs = [];
1736
+ var nonFuncs = [];
1737
+ for (var key in subs) {
1738
+ if (Object.prototype.hasOwnProperty.call(subs, key)) {
1739
+ var sub = subs[key];
1740
+ var unListener = sub({
1741
+ dispatch: prefixedDispatch(app._store.dispatch, model),
1742
+ history: app._history
1743
+ }, onError);
1744
+ if (isFunction(unListener)) {
1745
+ funcs.push(unListener);
1746
+ } else {
1747
+ nonFuncs.push(key);
1748
+ }
1749
+ }
1750
+ }
1751
+ return {
1752
+ funcs: funcs,
1753
+ nonFuncs: nonFuncs
1754
+ };
1755
+ }
1756
+ function unListen(unListeners, namespace) {
1757
+ if (!unListeners[namespace]) return;
1758
+ var _unListeners$namespac = unListeners[namespace],
1759
+ funcs = _unListeners$namespac.funcs,
1760
+ nonFuncs = _unListeners$namespac.nonFuncs;
1761
+ warning(nonFuncs.length === 0, "[app.unModel] subscription should return unListener function, check these subscriptions ".concat(nonFuncs.join(', ')));
1762
+ var _iterator = _createForOfIteratorHelper(funcs),
1763
+ _step;
1764
+ try {
1765
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
1766
+ var unListener = _step.value;
1767
+ unListener();
1768
+ }
1769
+ } catch (err) {
1770
+ _iterator.e(err);
1771
+ } finally {
1772
+ _iterator.f();
1773
+ }
1774
+ delete unListeners[namespace];
1775
+ }
1776
+
1777
+ var noop = noop$1,
1778
+ findIndex = findIndex$1;
1779
+
1780
+ // Internal model to update global state when do unmodel
1781
+ var dvaModel = {
1782
+ namespace: '@@dva',
1783
+ state: 0,
1784
+ reducers: {
1785
+ UPDATE: function UPDATE(state) {
1786
+ return state + 1;
1787
+ }
1788
+ }
1789
+ };
1790
+
1791
+ /**
1792
+ * Create dva-core instance.
1793
+ *
1794
+ * @param hooksAndOpts
1795
+ * @param createOpts
1796
+ */
1797
+ function create() {
1798
+ var hooksAndOpts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1799
+ var createOpts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1800
+ var initialReducer = createOpts.initialReducer,
1801
+ _createOpts$setupApp = createOpts.setupApp,
1802
+ setupApp = _createOpts$setupApp === void 0 ? noop : _createOpts$setupApp;
1803
+ var plugin = new Plugin();
1804
+ plugin.use(filterHooks(hooksAndOpts));
1805
+ var app = {
1806
+ _models: [prefixNamespace(_objectSpread2({}, dvaModel))],
1807
+ _store: null,
1808
+ _plugin: plugin,
1809
+ use: plugin.use.bind(plugin),
1810
+ model: model,
1811
+ start: start
1812
+ };
1813
+ return app;
1814
+
1815
+ /**
1816
+ * Register model before app is started.
1817
+ *
1818
+ * @param m {Object} model to register
1819
+ */
1820
+ function model(m) {
1821
+ if (process.env.NODE_ENV !== 'production') {
1822
+ checkModel(m, app._models);
1823
+ }
1824
+ var prefixedModel = prefixNamespace(_objectSpread2({}, m));
1825
+ app._models.push(prefixedModel);
1826
+ return prefixedModel;
1827
+ }
1828
+
1829
+ /**
1830
+ * Inject model after app is started.
1831
+ *
1832
+ * @param createReducer
1833
+ * @param onError
1834
+ * @param unListeners
1835
+ * @param m
1836
+ */
1837
+ function injectModel(createReducer, onError, unListeners, m) {
1838
+ m = model(m);
1839
+ var store = app._store;
1840
+ store.asyncReducers[m.namespace] = getReducer(m.reducers, m.state, plugin._handleActions, m.namespace);
1841
+ store.replaceReducer(createReducer());
1842
+ if (m.effects) {
1843
+ store.runSaga(app._getSaga(m.effects, m, onError, plugin.get('onEffect'), hooksAndOpts));
1844
+ }
1845
+ if (m.subscriptions) {
1846
+ unListeners[m.namespace] = run(m.subscriptions, m, app, onError);
1847
+ }
1848
+ }
1849
+
1850
+ /**
1851
+ * Unregister model.
1852
+ *
1853
+ * @param createReducer
1854
+ * @param reducers
1855
+ * @param unListeners
1856
+ * @param namespace
1857
+ *
1858
+ * Unexpected key warn problem:
1859
+ * https://github.com/reactjs/redux/issues/1636
1860
+ */
1861
+ function unModel(createReducer, reducers, unListeners, namespace) {
1862
+ var store = app._store;
1863
+
1864
+ // Delete reducers
1865
+ delete store.asyncReducers[namespace];
1866
+ delete reducers[namespace];
1867
+ store.replaceReducer(createReducer());
1868
+ store.dispatch({
1869
+ type: '@@dva/UPDATE'
1870
+ });
1871
+
1872
+ // Cancel effects
1873
+ store.dispatch({
1874
+ type: "".concat(namespace, "/@@CANCEL_EFFECTS")
1875
+ });
1876
+
1877
+ // UnListen subscriptions
1878
+ unListen(unListeners, namespace);
1879
+
1880
+ // Delete model from app._models
1881
+ app._models = app._models.filter(function (mo) {
1882
+ return mo.namespace !== namespace;
1883
+ });
1884
+ }
1885
+
1886
+ /**
1887
+ * Replace a model if it exists, if not, add it to app
1888
+ * Attention:
1889
+ * - Only available after dva.start gets called
1890
+ * - Will not check origin m is strict equal to the new one
1891
+ * Useful for HMR
1892
+ * @param createReducer
1893
+ * @param reducers
1894
+ * @param unListeners
1895
+ * @param onError
1896
+ * @param m
1897
+ */
1898
+ function replaceModel(createReducer, reducers, unListeners, onError, m) {
1899
+ var store = app._store;
1900
+ var namespace = m.namespace;
1901
+ var oldModelIdx = findIndex(app._models, function (mo) {
1902
+ return mo.namespace === namespace;
1903
+ });
1904
+ if (~oldModelIdx) {
1905
+ // Cancel effects
1906
+ store.dispatch({
1907
+ type: "".concat(namespace, "/@@CANCEL_EFFECTS")
1908
+ });
1909
+
1910
+ // Delete reducers
1911
+ delete store.asyncReducers[namespace];
1912
+ delete reducers[namespace];
1913
+
1914
+ // UnListen subscriptions
1915
+ unListen(unListeners, namespace);
1916
+
1917
+ // Delete model from app._models
1918
+ app._models.splice(oldModelIdx, 1);
1919
+ }
1920
+
1921
+ // add new version model to store
1922
+ app.model(m);
1923
+ store.dispatch({
1924
+ type: '@@dva/UPDATE'
1925
+ });
1926
+ }
1927
+
1928
+ /**
1929
+ * Start the app.
1930
+ *
1931
+ * @returns void
1932
+ */
1933
+ function start() {
1934
+ // Global error handler
1935
+ var onError = function onError(err, extension) {
1936
+ if (err) {
1937
+ if (typeof err === 'string') err = new Error(err);
1938
+ err.preventDefault = function () {
1939
+ err._doNotReject = true;
1940
+ };
1941
+ plugin.apply('onError', function (e) {
1942
+ throw new Error(e.stack || e);
1943
+ })(err, app._store.dispatch, extension);
1944
+ }
1945
+ };
1946
+ var sagaMiddleware = createSagaMiddleware__default();
1947
+ var promiseMiddleware = createPromiseMiddleware(app);
1948
+ app._getSaga = getSaga.bind(null);
1949
+ var sagas = [];
1950
+ var reducers = _objectSpread2({}, initialReducer);
1951
+ var _iterator = _createForOfIteratorHelper(app._models),
1952
+ _step;
1953
+ try {
1954
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
1955
+ var m = _step.value;
1956
+ reducers[m.namespace] = getReducer(m.reducers, m.state, plugin._handleActions, m.namespace);
1957
+ if (m.effects) {
1958
+ sagas.push(app._getSaga(m.effects, m, onError, plugin.get('onEffect'), hooksAndOpts));
1959
+ }
1960
+ }
1961
+ } catch (err) {
1962
+ _iterator.e(err);
1963
+ } finally {
1964
+ _iterator.f();
1965
+ }
1966
+ var reducerEnhancer = plugin.get('onReducer');
1967
+ var extraReducers = plugin.get('extraReducers');
1968
+ invariant(Object.keys(extraReducers).every(function (key) {
1969
+ return !(key in reducers);
1970
+ }), "[app.start] extraReducers is conflict with other reducers, reducers list: ".concat(Object.keys(reducers).join(', ')));
1971
+
1972
+ // Create store
1973
+ app._store = createStore({
1974
+ reducers: createReducer(),
1975
+ initialState: hooksAndOpts.initialState || {},
1976
+ plugin: plugin,
1977
+ createOpts: createOpts,
1978
+ sagaMiddleware: sagaMiddleware,
1979
+ promiseMiddleware: promiseMiddleware
1980
+ });
1981
+ var store = app._store;
1982
+
1983
+ // Extend store
1984
+ store.runSaga = sagaMiddleware.run;
1985
+ store.asyncReducers = {};
1986
+
1987
+ // Execute listeners when state is changed
1988
+ var listeners = plugin.get('onStateChange');
1989
+ var _iterator2 = _createForOfIteratorHelper(listeners),
1990
+ _step2;
1991
+ try {
1992
+ var _loop = function _loop() {
1993
+ var listener = _step2.value;
1994
+ store.subscribe(function () {
1995
+ listener(store.getState());
1996
+ });
1997
+ };
1998
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
1999
+ _loop();
2000
+ }
2001
+
2002
+ // Run sagas
2003
+ } catch (err) {
2004
+ _iterator2.e(err);
2005
+ } finally {
2006
+ _iterator2.f();
2007
+ }
2008
+ sagas.forEach(sagaMiddleware.run);
2009
+
2010
+ // Setup app
2011
+ setupApp(app);
2012
+
2013
+ // Run subscriptions
2014
+ var unListeners = {};
2015
+ var _iterator3 = _createForOfIteratorHelper(this._models),
2016
+ _step3;
2017
+ try {
2018
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
2019
+ var item = _step3.value;
2020
+ if (item.subscriptions) {
2021
+ unListeners[item.namespace] = run(item.subscriptions, item, app, onError);
2022
+ }
2023
+ }
2024
+
2025
+ // Setup app.model and app.unModel
2026
+ } catch (err) {
2027
+ _iterator3.e(err);
2028
+ } finally {
2029
+ _iterator3.f();
2030
+ }
2031
+ app.model = injectModel.bind(app, createReducer, onError, unListeners);
2032
+ app.unModel = unModel.bind(app, createReducer, reducers, unListeners);
2033
+ app.replaceModel = replaceModel.bind(app, createReducer, reducers, unListeners, onError);
2034
+
2035
+ /**
2036
+ * Create global reducer for redux.
2037
+ *
2038
+ * @returns {Object}
2039
+ */
2040
+ function createReducer() {
2041
+ return reducerEnhancer(combineReducers(_objectSpread2(_objectSpread2(_objectSpread2({}, reducers), extraReducers), app._store ? app._store.asyncReducers : {})));
2042
+ }
2043
+ }
2044
+ }
2045
+ var connect = connect$1;
2046
+ var Provider = Provider$1;
2047
+
2048
+ export { Provider, connect, create, utils };