UNPKG

5.08 kBJavaScriptView Raw
1!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("redux")):"function"==typeof define&&define.amd?define(["exports","redux"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self)["@rematch/core"]={},e.Redux)}(this,(function(e,n){"use strict";function r(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var t=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,t.get?t:{enumerable:!0,get:function(){return e[r]}})}})),n.default=e,n}var t=r(n);function o(){return o=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},o.apply(this,arguments)}function u(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 c(e){var n,r,o=e.reduxConfig.rootReducers,u=(r=(n=e.reduxConfig).combineReducers||t.combineReducers,Object.keys(n.reducers).length?r(n.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 i=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 d(e,n){e.dispatch[""+n.name]={},function(e,n){var r=e.dispatch[n.name];Object.keys(n.reducers).forEach((function(t){r[t]=i(e,n.name,t,!1)}))}(e,n)}function a(e,n,r){!function(e,n,r){var t=e.dispatch[r.name],o={};r.effects&&(o="function"==typeof r.effects?r.effects(e.dispatch):r.effects),Object.keys(o).forEach((function(u){n.effects[r.name+"/"+u]=o[u].bind(t),t[u]=i(e,r.name,u,!0)}))}(e,n,r),n.forEachPlugin("onModel",(function(n){n(r,e)}))}var f=0;function s(e,n){return n?o({},n,e):e}var l=function(e){var n=function(e){var n,r,t,u=null!=(n=e.name)?n:"Rematch Store "+f;f+=1;var c={name:u,models:e.models||{},plugins:e.plugins||[],redux:o({reducers:{},rootReducers:{},enhancers:[],middlewares:[]},e.redux,{devtoolOptions:o({name:u},null!=(r=null==(t=e.redux)?void 0:t.devtoolOptions)?r:{})})};return c.plugins.forEach((function(e){e.config&&(c.models=s(c.models,e.config.models),e.config.redux&&(c.redux.initialState=s(c.redux.initialState,e.config.redux.initialState),c.redux.reducers=s(c.redux.reducers,e.config.redux.reducers),c.redux.rootReducers=s(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 n=function(e){return{models:(n=e.models,Object.keys(n).map((function(e){return o({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);n.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)}}}}(n)),n.forEachPlugin("createMiddleware",(function(e){n.reduxConfig.middlewares.push(e(n))}));var r,i=function(e){var n;e.models.forEach((function(n){return u(e,n)}));var r,o=c(e),i=t.applyMiddleware.apply(t,e.reduxConfig.middlewares),d=e.reduxConfig.devtoolComposer?(n=e.reduxConfig).devtoolComposer.apply(n,e.reduxConfig.enhancers.concat([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):t.compose).apply(void 0,e.reduxConfig.enhancers.concat([i])),a=e.reduxConfig.initialState;return(e.reduxConfig.createStore||t.createStore)(o,void 0===a?{}:a,d)}(n),f=o({},i,{name:e.name,addModel:function(e){u(n,e),d(f,e),a(f,n,e),i.replaceReducer(c(n)),i.dispatch({type:"@@redux/REPLACE"})}});return r=f,e.plugins.forEach((function(e){e.exposed&&Object.keys(e.exposed).forEach((function(n){if(e.exposed){var t=e.exposed[n];r[n]="function"==typeof t?function(){for(var e=arguments.length,n=new Array(e),o=0;o<e;o++)n[o]=arguments[o];return t.apply(void 0,[r].concat(n))}:Object.create(e.exposed[n])}}))})),n.models.forEach((function(e){return d(f,e)})),n.models.forEach((function(e){return a(f,n,e)})),n.forEachPlugin("onStoreCreated",(function(e){f=e(f,n)||f})),f}(n)},p=function(){return function(e){return e}},x={init:l,createModel:p};e.createModel=p,e.default=x,e.init=l,Object.defineProperty(e,"__esModule",{value:!0})}));
2//# sourceMappingURL=core.umd.production.min.js.map