UNPKG

@rematch/core

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