UNPKG

applet-redux

Version:

支付宝小程序,redux,dva,store

1 lines 4.47 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["applet-redux"]=t():e["applet-redux"]=t()}(self,(function(){return(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{connect:()=>f,createModel:()=>d,provider:()=>s});const r=["type"],n=["type"];function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function u(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}const l="REDUX_STORE";function s({store:e}){if(void 0===e)throw new Error("store 为空");return function(t={}){const{globalData:r={}}=t;return t.globalData=Object.assign(r,{[l]:e}),t}}function a(e,t){if(Object.is(e,t))return!1;const r=Object.keys(e),n=Object.keys(t);return r.length!==n.length||r.some((r=>e[r]!==t[r]))}function p(e){return{dispatch:e}}function f(e,t=p,r=a){return function(n={}){var o;if(!getApp)throw new Error("全局没有 getApp() 方法");const c=null===(o=getApp)||void 0===o?void 0:o().globalData[l];if(void 0===c)throw new Error("store 为空");const{getState:i,subscribe:u,dispatch:s}=c,{didMount:a,didUnmount:p,props:f={},data:d={}}=n;if(n.props=Object.assign(f,null==t?void 0:t(s),{dispatch:s}),!e)return n;let b,y=null==e?void 0:e(i());return n.data=Object.assign(d,y),n.didMount=function(...t){return b=u((()=>{const t=null==e?void 0:e(i());r(y,t)&&(y=t,this.setData(t))})),a&&a.call(this,...t)},n.didUnmount=function(...e){var t;return null===(t=b)||void 0===t||t(),p&&p.call(this,...e)},n}}function d({models:e=[]}){var t;const o={},i={},l={},s=null==e?void 0:e.filter(((e,t,r)=>{const n=r.findIndex((t=>t.namespace===e.namespace))===t;return n||console.error(`有重复模块,请确认 namespace:${e.namespace}`),n}));null==s||s.forEach((e=>{const{namespace:t,state:n,reducers:c,effects:s,subscriptions:a}=e;o[t]=function(e=n,o={}){const{type:i=""}=o,l=u(o,r),[s,a]=i.split("/");var p;return s===t&&c[a]?null===(p=c[a])||void 0===p?void 0:p.call(c,e,l):e},i[t]=a,l[t]=s}));const a=function(e,t){let r=e,n=r(t,{});const o=[];function c(e={}){if(void 0===e.type)throw new Error("action.type 为空");return n=r(n,e),o.forEach((e=>e())),e}return c({type:"REDUX_INIT"}),{getState:function(){return n},dispatch:c,subscribe:function(e){if("function"!=typeof e)throw new Error(`subscribe 入参不是函数:${e}`);return o.push(e),function(){o.splice(o.indexOf(e),1)}},replaceReducer:function(e){r=e,c({type:"REDUX_REPLACEREDUCER"})}}}(function(e={}){const t=Object.keys(e);return function(r={},n){return t.reduce(((t,o)=>{var c;return t[o]=null===(c=e[o])||void 0===c?void 0:c.call(e,r[o],n),t}),{})}}(o)),p=e=>{var t;const{type:r}=e,o=u(e,n),[c,i]=r.split("/");var s,f;return null!=l&&null!==(t=l[c])&&void 0!==t&&t[i]?null===(s=l[c])||void 0===s||null===(f=s[i])||void 0===f?void 0:f.call(s,o,{getState:a.getState,dispatch(e={}){const{type:t=""}=e;return e.type=t.includes("/")?t:`${c}/${t}`,p(e)}}):a.dispatch(e)};return null===(t=Object.keys(i))||void 0===t||t.forEach((e=>{var t;null==i||null===(t=i[e])||void 0===t||t.call(i,{subscribe:a.subscribe,dispatch(t={}){const{type:r=""}=t;return p(c(c({},t),{},{type:r.includes("/")?r:`${e}/${r}`}))}})})),c(c({},a),{},{dispatch:p})}return t})()}));