UNPKG

@rematch/core

Version:
3 lines (2 loc) 4.63 kB
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("redux")):"function"==typeof define&&define.amd?define(["exports","redux"],n):n((e=e||self)["@rematch/core"]={},e.Redux)}(this,(function(e,n){"use strict";function r(){return(r=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e}).apply(this,arguments)}function t(e,n){var r={};Object.keys(n.reducers).forEach((function(e){var t=function(e){return e.indexOf("/")>-1}(e)?e:n.name+"/"+e;r[t]=n.reducers[e]}));var t=function(e,t){return void 0===e&&(e=n.state),t.type in r?r[t.type](e,t.payload,t.meta):e},o=n.baseReducer,u=o?function(e,r){return void 0===e&&(e=n.state),t(o(e,r),r)}:t;e.forEachPlugin("onReducer",(function(r){u=r(u,n.name,e)||u})),e.reduxConfig.reducers[n.name]=u}function o(e){var r,t,o=e.reduxConfig.rootReducers,u=(t=(r=e.reduxConfig).combineReducers||n.combineReducers,Object.keys(r.reducers).length?t(r.reducers):function(e){return e}),c=u;return o&&Object.keys(o).length&&(c=function(e,n){var r=o[n.type];return u(r?r(e,n):e,n)}),e.forEachPlugin("onRootReducer",(function(n){c=n(c,e)||c})),c}var u=function(e,n,r,t){return Object.assign((function(t,o){var u={type:n+"/"+r};return void 0!==t&&(u.payload=t),void 0!==o&&(u.meta=o),e.dispatch(u)}),{isEffect:t})};function c(e,n,r){e.dispatch[""+r.name]={},function(e,n,r){var t=e.dispatch[r.name];Object.keys(r.reducers).forEach((function(n){t[n]=u(e,r.name,n,!1)}));var o={};r.effects&&(o="function"==typeof r.effects?r.effects(e.dispatch):r.effects),Object.keys(o).forEach((function(c){n.effects[r.name+"/"+c]=o[c].bind(t),t[c]=u(e,r.name,c,!0)}))}(e,n,r),n.forEachPlugin("onModel",(function(n){n(r,e)}))}var i=0;function d(e,n){return n?r({},n,e):e}var a=function(e){return function(e){var u=function(e){return{models:(n=e.models,Object.keys(n).map((function(e){return r({name:e,reducers:{}},n[e])}))),reduxConfig:e.redux,forEachPlugin:function(n,r){e.plugins.forEach((function(e){e[n]&&r(e[n])}))},effects:{}};var n}(e);u.reduxConfig.middlewares.push(function(e){return function(n){return function(r){return function(t){return t.type in e.effects?(r(t),e.effects[t.type](t.payload,n.getState(),t.meta)):r(t)}}}}(u)),u.forEachPlugin("createMiddleware",(function(e){u.reduxConfig.middlewares.push(e(u))}));var i,d=function(e){e.models.forEach((function(n){return t(e,n)}));var r,u=o(e),c=n.applyMiddleware.apply(n,e.reduxConfig.middlewares),i=(r=e.reduxConfig.devtoolOptions,void 0===r&&(r={}),!r.disabled&&"object"==typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__(r):n.compose).apply(void 0,e.reduxConfig.enhancers.concat([c])),d=e.reduxConfig.initialState;return(e.reduxConfig.createStore||n.createStore)(u,void 0===d?{}:d,i)}(u),a=r({},d,{name:e.name,addModel:function(e){t(u,e),c(this,u,e),this.replaceReducer(o(u)),d.dispatch({type:"@@redux/REPLACE"})}});return i=a,e.plugins.forEach((function(e){e.exposed&&Object.keys(e.exposed).forEach((function(n){if(e.exposed){var r=e.exposed[n];i[n]="function"==typeof r?function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return r.apply(void 0,[i].concat(n))}:Object.create(e.exposed[n])}}))})),a.addModel.bind(a),u.models.forEach((function(e){return c(a,u,e)})),u.forEachPlugin("onStoreCreated",(function(e){a=e(a,u)||a})),a}(function(e){var n,t,o,u=null!=(n=e.name)?n:"Rematch Store "+i;i+=1;var c={name:u,models:e.models||{},plugins:e.plugins||[],redux:r({reducers:{},rootReducers:{},enhancers:[],middlewares:[]},e.redux,{devtoolOptions:r({name:u},null!=(t=null==(o=e.redux)?void 0:o.devtoolOptions)?t:{})})};return c.plugins.forEach((function(e){e.config&&(c.models=d(c.models,e.config.models),e.config.redux&&(c.redux.initialState=d(c.redux.initialState,e.config.redux.initialState),c.redux.reducers=d(c.redux.reducers,e.config.redux.reducers),c.redux.rootReducers=d(c.redux.rootReducers,e.config.redux.reducers),c.redux.enhancers=[].concat(c.redux.enhancers,e.config.redux.enhancers||[]),c.redux.middlewares=[].concat(c.redux.middlewares,e.config.redux.middlewares||[]),c.redux.combineReducers=c.redux.combineReducers||e.config.redux.combineReducers,c.redux.createStore=c.redux.createStore||e.config.redux.createStore))})),c}(e||{}))},f=function(){return function(e){var n=e.reducers,t=e.effects;return r({},e,{reducers:void 0===n?{}:n,effects:void 0===t?{}:t})}},s={init:a,createModel:f};e.createModel=f,e.default=s,e.init=a,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=core.umd.production.min.js.map