UNPKG

redux-dynamic-modules

Version:

Modularize the redux app by dynamically loading reducers, state and sagas

2 lines 12.3 kB
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(require("redux"),require("react"),require("react-redux")):"function"==typeof define&&define.amd?define(["redux","react","react-redux"],r):"object"==typeof exports?exports["redux-dynamic-modules"]=r(require("redux"),require("react"),require("react-redux")):e["redux-dynamic-modules"]=r(e.redux,e.react,e["react-redux"])}(window,function(e,r,n){return function(e){var r={};function n(t){if(r[t])return r[t].exports;var o=r[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=r,n.d=function(e,r,t){n.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,r){if(1&r&&(e=n(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(n.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)n.d(t,o,function(r){return e[r]}.bind(null,o));return t},n.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(r,"a",r),r},n.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},n.p="",n(n.s=5)}([function(r,n){r.exports=e},function(e,r,n){"use strict";r.__esModule=!0,r.getObjectRefCounter=function(e,r){e||(e=function(e,r){return e===r}),r||(r=function(){return!1});var n=[],t=[];return{getCount:function(r){if(void 0===r||null===r)return 0;var o=n.findIndex(function(n){return n&&e(n,r)});return-1===o?0:t[o]},add:function(o){if(void 0!==o&&null!==o){var u=n.findIndex(function(r){return r&&e(r,o)}),i=1;-1===u?(u=n.length,n.push(o)):i=t[u]+1,r(o)&&(i=1/0),t[u]=i}},remove:function(o){if(r(o))return!1;var u=n.findIndex(function(r){return r&&e(r,o)});return-1!==u&&(1===t[u]?(delete n[u],delete t[u],!0):(t[u]=t[u]-1,!1))}}},r.getStringRefCounter=function(){var e={};return{getCount:function(r){return void 0===r||null===r?0:e[r]||0},add:function(r){void 0!==r&&null!==r&&(e[r]?e[r]++:e[r]=1)},remove:function(r){return void 0!==r&&null!==r&&!!e[r]&&(1===e[r]?(delete e[r],!0):(e[r]--,!1))}}}},function(e,r,n){"use strict";function t(e){for(var n in e)r.hasOwnProperty(n)||(r[n]=e[n])}r.__esModule=!0,t(n(6)),t(n(12)),t(n(1)),t(n(3)),t(n(4))},function(e,r,n){"use strict";r.__esModule=!0;var t=n(8);r.getMiddlewareManager=function(){var e=t.createDynamicMiddlewares();return{getItems:function(){return[]},enhancer:e.enhancer,add:function(r){return e.addMiddleware.apply(e,r),r},remove:function(r){return r.forEach(e.removeMiddleware),r},dispose:function(){e.resetMiddlewares()}}}},function(e,r,n){"use strict";var t=this&&this.__assign||function(){return(t=Object.assign||function(e){for(var r,n=1,t=arguments.length;n<t;n++)for(var o in r=arguments[n])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e}).apply(this,arguments)};r.__esModule=!0;var o=n(1);r.getRefCountedManager=function(e,r,n){var u=o.getObjectRefCounter(r,n);e.getItems().forEach(function(e){return u.add(e)});var i=t({},e);return i.add=function(r){if(r){var n=r.filter(function(e){return e}),t=n.filter(function(e){return 0===u.getCount(e)});e.add(t),n.forEach(u.add)}},i.remove=function(r){r&&r.forEach(function(r){r&&(u.remove(r),0===u.getCount(r)&&e.remove([r]))})},i.dispose=function(){e.dispose()},i}},function(e,r,n){"use strict";function t(e){for(var n in e)r.hasOwnProperty(n)||(r[n]=e[n])}r.__esModule=!0,t(n(2)),t(n(13))},function(e,r,n){"use strict";var t=this&&this.__spreadArrays||function(){for(var e=0,r=0,n=arguments.length;r<n;r++)e+=arguments[r].length;var t=Array(e),o=0;for(r=0;r<n;r++)for(var u=arguments[r],i=0,d=u.length;i<d;i++,o++)t[o]=u[i];return t};r.__esModule=!0;var o=n(0),u=n(7),i=n(3),d=n(9),a=n(4),c=n(11);r.createStore=function(e){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];var f=e.initialState,s=void 0===f?{}:f,l=e.extensions,p=void 0===l?[]:l,v=e.enhancers,h=void 0===v?[]:v,M=e.advancedComposeEnhancers,g=void 0===M?u.composeWithDevTools({}):M,y=e.advancedCombineReducers,m=p.reduce(function(e,r){return r.middleware&&e.push.apply(e,r.middleware),e},[]),_=a.getRefCountedManager(i.getMiddlewareManager(),function(e,r){return e===r}),w=g.apply(void 0,t(h,[o.applyMiddleware.apply(void 0,t(m,[_.enhancer]))])),x=a.getRefCountedManager(d.getModuleManager(_,p,y),function(e,r){return e.id===r.id},function(e){return e.retained}),R=o.createStore(x.getReducer,s,w);x.setDispatch(R.dispatch);var b=function(e){var r=c.flatten(e);return x.add(r),{remove:function(){x.remove(r)}}},C=function(e){return b([e])};return p.forEach(function(e){e.onModuleManagerCreated&&e.onModuleManagerCreated({addModule:C,addModules:b})}),R.addModule=C,R.addModules=b,R.dispose=function(){x.dispose(),_.dispose(),p.forEach(function(e){e.dispose&&e.dispose()})},R.addModules(r),R}},function(e,r,n){"use strict";var t=n(0).compose;r.__esModule=!0,r.composeWithDevTools=function(){if(0!==arguments.length)return"object"==typeof arguments[0]?t:t.apply(null,arguments)},r.devToolsEnhancer=function(){return function(e){return e}}},function(e,r,n){"use strict";r.__esModule=!0,r.createDynamicMiddlewares=r.resetMiddlewares=r.removeMiddleware=r.addMiddleware=void 0;var t=n(0),o=function(){var e=[];return{enhancer:function(r){return function(n){return function(o){var u=e.map(function(e){return e(r)});return t.compose.apply(void 0,u)(n)(o)}}},addMiddleware:function(){for(var r=arguments.length,n=Array(r),t=0;t<r;t++)n[t]=arguments[t];e=[].concat(e,n)},removeMiddleware:function(r){var n=e.findIndex(function(e){return e===r});-1!==n?e=e.filter(function(e,r){return r!==n}):console.error("Middleware does not exist!",r)},resetMiddlewares:function(){e=[]}}},u=o();r.default=u.enhancer;var i=u.addMiddleware,d=u.removeMiddleware,a=u.resetMiddlewares;r.addMiddleware=i,r.removeMiddleware=d,r.resetMiddlewares=a,r.createDynamicMiddlewares=o},function(e,r,n){"use strict";var t=this&&this.__spreadArrays||function(){for(var e=0,r=0,n=arguments.length;r<n;r++)e+=arguments[r].length;var t=Array(e),o=0;for(r=0;r<n;r++)for(var u=arguments[r],i=0,d=u.length;i<d;i++,o++)t[o]=u[i];return t};r.__esModule=!0;var o=n(10);r.getModuleManager=function(e,r,n){var u,i=null,d=[],a=new Set,c=function(e){if(e){if(!i)throw new Error("setDispatch should be called on ModuleManager before adding any modules.");e.forEach(i)}},f={getReducer:function(e,r){return u?u.reduce(e,r):e||null},setDispatch:function(e){i=e},getItems:function(){return[]},add:function(f){if(f&&0!==f.length){var s=[];(f=f.filter(function(e){return e})).forEach(function(r){if(!a.has(r.id)){a.add(r.id),d.push(r),function(e){if(e)if(u)for(var r in e)u.add(r,e[r]);else u=o.getRefCountedReducerManager(o.getReducerManager(e,n))}(r.reducerMap);var t=r.middlewares;t&&function(r){r&&e.add(r)}(t),s.push(r)}}),i({type:"@@Internal/ModuleManager/SeedReducers"}),s.forEach(function(e){r.forEach(function(r){r.onModuleAdded&&r.onModuleAdded(e)});var n={type:"@@Internal/ModuleManager/ModuleAdded",payload:e.id};c(e.initialActions?t([n],e.initialActions):[n])})}},remove:function(n){n&&(n=n.filter(function(e){return e}).reverse()).forEach(function(n){a.has(n.id)&&(c(n.finalActions),function(e){if(e&&u)for(var r in e)u.remove(r)}(n.reducerMap),function(r){r&&e.remove(r)}(n.middlewares),r.forEach(function(e){e.onModuleRemoved&&e.onModuleRemoved(n)}),a.delete(n.id),d=d.filter(function(e){return e.id!==n.id}),c([{type:"@@Internal/ModuleManager/ModuleRemoved",payload:n.id}]))})},dispose:function(){f.remove(d)}};return f}},function(e,r,n){"use strict";var t=this&&this.__assign||function(){return(t=Object.assign||function(e){for(var r,n=1,t=arguments.length;n<t;n++)for(var o in r=arguments[n])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e}).apply(this,arguments)};r.__esModule=!0;var o=n(0),u=n(1);function i(e,r){return void 0===r&&(r=o.combineReducers),e&&0!==Object.keys(e).length?r(e):function(e,r){return e||null}}r.getRefCountedReducerManager=function(e){var r=u.getStringRefCounter();for(var n in e.getReducerMap())r.add(n);return{reduce:e.reduce,getReducerMap:e.getReducerMap,add:function(n,t){0===r.getCount(n)&&e.add(n,t),r.add(n)},remove:function(n){r.remove(n),0===r.getCount(n)&&e.remove(n)}}},r.getReducerManager=function(e,r){void 0===r&&(r=o.combineReducers);var n=r(e),u=t({},e),d=[];return{getReducerMap:function(){return u},reduce:function(e,r){if(d.length>0){e=t({},e);for(var o=0,u=d;o<u.length;o++)delete e[u[o]];d=[]}return void 0===e&&(e={}),n(e,r)},add:function(e,t){e&&!u[e]&&(u[e]=t,n=i(u,r))},remove:function(e){e&&u[e]&&(delete u[e],d.push(e),n=i(u,r))}}}},function(e,r,n){"use strict";var t=this&&this.__spreadArrays||function(){for(var e=0,r=0,n=arguments.length;r<n;r++)e+=arguments[r].length;var t=Array(e),o=0;for(r=0;r<n;r++)for(var u=arguments[r],i=0,d=u.length;i<d;i++,o++)t[o]=u[i];return t};r.__esModule=!0,r.flatten=function(e){if(e){for(var r=e.slice(),n=0;n<r.length;)Array.isArray(r[n])?r.splice.apply(r,t([n,1],r[n])):n++;return r}return e}},function(e,r,n){"use strict";r.__esModule=!0,r.getMap=function(e){var r=[],n={};return{keys:r,get:function(t){if(t){var o=r.findIndex(function(r){return r&&e(r,t)});if(-1!==o)return n[o]}},add:function(t,o){t&&-1===r.findIndex(function(r){return r&&e(r,t)})&&(r.push(t),n[r.length-1]=o)},remove:function(t){if(t){var o=r.findIndex(function(r){return r&&e(r,t)});if(-1!==o){delete r[o];var u=n[o];return delete n[o],u}}}}}},function(e,r,n){"use strict";function t(e){for(var n in e)r.hasOwnProperty(n)||(r[n]=e[n])}r.__esModule=!0,t(n(2)),t(n(14))},function(e,r,n){"use strict";var t=this&&this.__extends||function(){var e=function(r,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n])})(r,n)};return function(r,n){function t(){this.constructor=r}e(r,n),r.prototype=null===n?Object.create(n):(t.prototype=n.prototype,new t)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(e){for(var r,n=1,t=arguments.length;n<t;n++)for(var o in r=arguments[n])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e}).apply(this,arguments)};r.__esModule=!0;var u=n(15),i=n(16),d=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return t(r,e),r.prototype.render=function(){var e=this;return u.createElement(i.ReactReduxContext.Consumer,null,function(r){return u.createElement(a,o({},e.props,{reactReduxContext:r}))})},r}(u.Component);r.DynamicModuleLoader=d;var a=function(e){function r(r){var n=e.call(this,r)||this;if(n._providerInitializationNeeded=!1,n._cleanup=function(){n._addedModules&&(n._addedModules.remove(),n._addedModules=void 0)},null==r.reactReduxContext){var t="Tried to render DynamicModuleLoader, but no ReactReduxContext was provided";throw console.error(t),new Error(t)}return n._store=r.reactReduxContext?r.reactReduxContext.store:void 0,n.props.strictMode?n.state={readyToRender:!1}:(n._addModules(),n.state={readyToRender:!0}),n}return t(r,e),r.prototype.render=function(){return this.state.readyToRender?this._providerInitializationNeeded?u.createElement(i.Provider,{store:this._store},u.createElement(d,o({},this.props))):u.createElement(u.Fragment,null,this._renderLoader(),u.createElement(c,{cleanup:this._cleanup})):null},r.prototype._renderLoader=function(){return this.props.children?"function"==typeof this.props.children?this.props.children():this.props.children:null},r.prototype._addModules=function(){var e=this.props,r=e.createStore,n=e.modules;if(this._store)this._addedModules=this._store.addModules(n);else{if(!r)throw new Error("Store could not be resolved from React context");this._store=r(),this._providerInitializationNeeded=!0}},r.prototype.componentDidMount=function(){this.props.strictMode&&(this._addModules(),this.setState({readyToRender:!0}))},r}(u.Component),c=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return t(r,e),r.prototype.render=function(){return null},r.prototype.componentWillUnmount=function(){this.props.cleanup()},r}(u.Component)},function(e,n){e.exports=r},function(e,r){e.exports=n}])}); //# sourceMappingURL=redux-dynamic-modules.min.js.map