ray-template/assets/vue-hooks-plus@1.8.1_vue@3.3.4-3a24a3e6.js
XiaoDaiGua-Ray d0f7646704 v4.1.8
2023-08-20 14:56:32 +08:00

2 lines
10 KiB
JavaScript

import{u as v,k as g,h as j,i as Q,v as G}from"./@vue_reactivity@3.3.4-2b3a1c4e.js";import{D as P,m as N,j as B,A,i as Y}from"./@vue_runtime-core@3.3.4-073fad6e.js";import{d as z,t as J}from"./lodash@4.17.21-1fc7385f.js";const I=(n,{manual:e,ready:t=!0,refreshDeps:s=[],refreshDepsAction:r})=>{const o=g(!1);return P(()=>{!e&&n.options.refreshDeps!==!0&&(o.value=v(t))}),s instanceof Array?N([o,...s],([i])=>{i&&!e&&i&&(r?r():n.refresh())},{deep:!0,immediate:!1}):N(o,i=>{!e&&i&&(r?r():n.refresh())}),{name:"autoRunPlugin",onBefore:()=>{if(!v(t))return{stopNow:!0}}}};I.onInit=({ready:n=!0,manual:e})=>({loading:!e&&v(n)});const S=new Map,W=(n,e,t)=>{const s=S.get(n);s!=null&&s.timer&&clearTimeout(s.timer);let r;e>-1&&(r=setTimeout(()=>{S.delete(n)},e)),S.set(n,{...t,timer:r})},X=n=>S.get(n),D=new Map,Z=n=>D.get(n),K=(n,e)=>{D.set(n,e),e.then(t=>(D.delete(n),t)).catch(t=>{throw D.delete(n),t})},_={},k=[],ee=(n,e)=>{_[n]&&(_[n].forEach(t=>t(e)),k.forEach(t=>t({type:n,data:e})))},T=(n,e)=>(_[n]||(_[n]=[]),_[n].push(e),function(){const s=_[n].indexOf(e);_[n].splice(s,1)}),te=(n,{cacheKey:e,cacheTime:t=5*60*1e3,staleTime:s=0,setCache:r,getCache:o})=>{const i=g(),l=g(),d=(a,u)=>{r?r(u):W(a,t,u),ee(a,u.data)},h=(a,u=[])=>o?o(u):X(a);return P(()=>{if(!e)return;const a=h(e);a&&Object.hasOwnProperty.call(a,"data")&&(n.state.data=a.data,n.state.params=a.params,(s===-1||new Date().getTime()-a.time<=s)&&(n.state.loading=!1)),i.value=T(e,u=>{n.setState({data:u})})}),B(()=>{var a;(a=i.value)==null||a.call(i)}),e?{name:"cachePlugin",onBefore:a=>{const u=h(e,a);return!u||!Object.hasOwnProperty.call(u,"data")?{}:s===-1||new Date().getTime()-u.time<=s?{loading:!1,data:u==null?void 0:u.data,returnNow:!0}:{data:u==null?void 0:u.data}},onRequest:(a,u)=>{let m=Z(e);return m&&m!==l.value?{servicePromise:m}:(m=a(...u),l.value=m,K(e,m),{servicePromise:m})},onSuccess:(a,u)=>{var m;e&&((m=i.value)==null||m.call(i),d(e,{data:a,params:u,time:new Date().getTime()}),i.value=T(e,f=>{n.setState({data:f})}))},onMutate:a=>{var u;e&&((u=i.value)==null||u.call(i),d(e,{data:a,params:n.state.params,time:new Date().getTime()}),i.value=T(e,m=>{n.setState({data:m})}))}}:{}},ne=(n,{debounceWait:e,debounceLeading:t,debounceTrailing:s,debounceMaxWait:r})=>{const o=g(),i=A(()=>{const l={},d=v(t),h=v(s),a=v(r);return d!==void 0&&(l.leading=d),h!==void 0&&(l.trailing=h),a!==void 0&&(l.maxWait=a),l});return P(l=>{if(v(e)){const d=n.runAsync.bind(n);o.value=z(h=>{h()},v(e),i.value),n.runAsync=(...h)=>new Promise((a,u)=>{var m;(m=o.value)==null||m.call(o,()=>{d(...h).then(a).catch(u)})}),l(()=>{var h;(h=o.value)==null||h.cancel(),n.runAsync=d})}}),v(e)?{name:"debouncePlugin",onCancel:()=>{var l;(l=o.value)==null||l.cancel()}}:{}};var se=Object.defineProperty,ie=(n,e,t)=>e in n?se(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,$=(n,e,t)=>(ie(n,typeof e!="symbol"?e+"":e,t),t);class re{constructor(){$(this,"table",{}),$(this,"hashTable",{})}insert(e){const t=Symbol(e);return this.table[e]=!0,this.hashTable[t]=e,t}find(e){return this.hashTable[e]}}new re;var oe=Object.defineProperty,ae=(n,e,t)=>e in n?oe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,y=(n,e,t)=>(ae(n,typeof e!="symbol"?e+"":e,t),t);class ue{constructor(){y(this,"requestInstances",new Map),y(this,"listeners",[])}emit(e){this.listeners.forEach(t=>t(e))}subscribe(e){return this.listeners.push(e),()=>{const t=this.listeners.indexOf(e);this.listeners.splice(t,1)}}insert(e,t){this.requestInstances.set(e,{...t}),this.emit({key:e,...t})}update(e,t){this.has(e)&&this.requestInstances.set(e,{...this.requestInstances.get(e),...t})}has(e){return this.requestInstances.has(e)}reset(e){if(this.requestInstances.has(e)){const t=this.requestInstances.get(e);this.requestInstances.clear(),this.insert(e,t)}else this.requestInstances.clear()}getAll(){return this.requestInstances}}new ue;const le=(n,{loadingDelay:e})=>{const t=g();if(!v(e))return{};const s=()=>{t.value&&clearTimeout(t.value)};return{name:"loadingDelayPlugin",onBefore:()=>(s(),t.value=setTimeout(()=>{n.setState({loading:!0})},v(e)),{loading:!1}),onFinally:()=>{s()},onCancel:()=>{s()}}};function q(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}function F(){return q()?document.visibilityState!=="hidden":!0}const w=[];function ce(n){return w.push(n),function(){const t=w.indexOf(n);w.splice(t,1)}}if(q()){const n=()=>{if(F())for(let e=0;e<w.length;e++){const t=w[e];t()}};window.addEventListener("visibilitychange",n,!1)}const fe=(n,{pollingInterval:e,pollingWhenHidden:t=!0,pollingErrorRetryCount:s=-1})=>{const r=g(),o=g(),i=g(0),l=()=>{var d;r.value&&clearInterval(r.value),(d=o.value)==null||d.call(o)};return P(()=>{v(e)||l()}),v(e)?{name:"pollingPlugin",onBefore:()=>{l()},onError:()=>{i.value+=1},onSuccess:()=>{i.value=0},onFinally:()=>{s===-1||s!==-1&&i.value<=s?r.value=setTimeout(()=>{!t&&!F()?o.value=ce(()=>{n.refresh()}):n.refresh()},v(e)):i.value=0},onCancel:()=>{l()}}:{}};function de(n,e){let t=!1;return(...s)=>{t||(t=!0,n(...s),setTimeout(()=>{t=!1},e))}}const ve=!!(typeof window<"u"&&window.document&&window.document.createElement);function he(){return q()&&typeof navigator.onLine<"u"?navigator.onLine:!0}const R=[];function me(n){return R.push(n),function(){const t=R.indexOf(n);t>-1&&R.splice(t,1)}}if(ve){const n=()=>{if(!(!F()||!he()))for(let e=0;e<R.length;e++){const t=R[e];t()}};window.addEventListener("visibilitychange",n,!1),window.addEventListener("focus",n,!1)}const ge=(n,{refreshOnWindowFocus:e,focusTimespan:t=5e3})=>{const s=g(),r=()=>{var o;(o=s.value)==null||o.call(s)};return P(o=>{if(v(e)){const i=de(n.refresh.bind(n),v(t));s.value=me(()=>{i()})}o(()=>{r()})}),B(()=>{r()}),{name:"refreshOnWindowFocusPlugin"}},pe=(n,{retryInterval:e,retryCount:t})=>{const s=g(),r=g(0),o=g(!1);return t?{name:"retryPlugin",onBefore:()=>{o.value||(r.value=0),o.value=!1,s.value&&clearTimeout(s.value)},onSuccess:()=>{r.value=0},onError:()=>{if(r.value+=1,t===-1||r.value<=t){const i=e??Math.min(1e3*2**r.value,3e4);s.value=setTimeout(()=>{o.value=!0,n.refresh()},i)}else r.value=0},onCancel:()=>{r.value=0,s.value&&clearTimeout(s.value)}}:{}},be=(n,{throttleWait:e,throttleLeading:t,throttleTrailing:s})=>{const r=A(()=>{const i={};return v(t)!==void 0&&(i.leading=v(t)),v(s)!==void 0&&(i.trailing=v(s)),i}),o=A(()=>J(i=>{i()},v(e),r.value));return P(i=>{if(v(e)){const l=n.runAsync.bind(n);n.runAsync=(...d)=>new Promise((h,a)=>{var u;(u=o.value)==null||u.call(o,()=>{l(...d).then(h).catch(a)})}),i(()=>{var d;n.runAsync=l,(d=o.value)==null||d.cancel()})}}),v(e)?{name:"throttlePlugin",onCancel:()=>{var i;(i=o.value)==null||i.cancel()}}:{}},M=n=>typeof n=="function",_e=n=>typeof n=="boolean";var Pe=Object.defineProperty,we=(n,e,t)=>e in n?Pe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,E=(n,e,t)=>(we(n,typeof e!="symbol"?e+"":e,t),t);class Re{constructor(e,t,s,r={}){E(this,"pluginImpls"),E(this,"count",0),E(this,"state",{loading:!1,params:void 0,data:void 0,error:void 0}),E(this,"previousValidData"),this.serviceRef=e,this.options=t,this.setUpdateData=s,this.initState=r,this.state={...this.state,loading:!t.manual,...r}}setState(e={}){this.state={...this.state,...e},this.setUpdateData(this.state)}setData(e,t){console.warn("Please use 'setFetchState' instead of 'setData'"),t instanceof Array?t.forEach(s=>{this.state[s]=e,this.setUpdateData(e,s)}):(this.state[t]=e,this.setUpdateData(e,t))}setFetchState(e,t){t instanceof Array?t.forEach(s=>{this.state[s]=e,this.setUpdateData(e,s)}):(this.state[t]=e,this.setUpdateData(e,t))}runPluginHandler(e,...t){var s,r;const o=(r=((s=this.pluginImpls)==null?void 0:s.map(i=>{var l;return(l=i[e])==null?void 0:l.call(i,...t)}))??[])==null?void 0:r.filter(Boolean);return Object.assign({},...o)}async runAsync(...e){var t,s,r,o,i,l,d,h,a;this.count+=1;const u=this.count,{stopNow:m=!1,returnNow:f=!1,...O}=this.runPluginHandler("onBefore",e);if(m)return new Promise(()=>{});if(this.setState({loading:!0,params:e,...O}),f)return Promise.resolve(O.data);(s=(t=this.options).onBefore)==null||s.call(t,e);try{let{servicePromise:c}=this.runPluginHandler("onRequest",this.serviceRef.value,e);const p=U=>{var C,L,x,H;if(u!==this.count)return new Promise(()=>{});const b=this.options.formatResult?this.options.formatResult(U):U;return this.setState({data:b,error:void 0,loading:!1}),(L=(C=this.options).onSuccess)==null||L.call(C,b,e),this.runPluginHandler("onSuccess",b,e),this.previousValidData=b,(H=(x=this.options).onFinally)==null||H.call(x,e,b,void 0),u===this.count&&this.runPluginHandler("onFinally",e,b,void 0),b};c||(c=this.serviceRef.value(...e));const V=await c;return p(V)}catch(c){if(u!==this.count)return new Promise(()=>{});throw this.setState({error:c,loading:!1}),(o=(r=this.options).onError)==null||o.call(r,c,e),this.runPluginHandler("onError",c,e),(M((i=this.options)==null?void 0:i.rollbackOnError)&&((l=this.options)!=null&&l.rollbackOnError(e))||_e((d=this.options)==null?void 0:d.rollbackOnError)&&this.options.rollbackOnError)&&this.setState({data:this.previousValidData}),(a=(h=this.options).onFinally)==null||a.call(h,e,void 0,c),u===this.count&&this.runPluginHandler("onFinally",e,void 0,c),c}}run(...e){this.runAsync(...e).catch(t=>{this.options.onError||console.error(t)})}cancel(){this.count+=1,this.setState({loading:!1}),this.runPluginHandler("onCancel")}refresh(){this.run(...this.state.params||[])}refreshAsync(){return this.runAsync(...this.state.params||[])}mutate(e){const t=M(e)?e(this.state.data):e;this.runPluginHandler("onMutate",t),this.setState({data:t})}}const Oe=Symbol("USEREQUEST_GLOBAL_OPTIONS_PROVIDE_KEY");function Ee(n){return Object.keys(n).filter(t=>["data","loading","params","error"].includes(t)).length===4}function Se(n,e={},t=[]){const s=Y(Oe,{}),{initialData:r=void 0,manual:o=!1,ready:i=!0,...l}={...s??{},...e??{}},d={manual:o,ready:i,...l},h=g(n),a=j({data:r,loading:!1,params:void 0,error:void 0}),u=(c,p)=>{p?a[p]=c:Ee(c)&&(a.data=c.data,a.loading=c.loading,a.error=c.error,a.params=c.params)},m=t.map(c=>{var p;return(p=c==null?void 0:c.onInit)==null?void 0:p.call(c,d)}).filter(Boolean),f=new Re(h,d,u,Object.assign({},...m,a));f.options=d,f.pluginImpls=t.map(c=>c(f,d));const O=A(()=>Q(i)?i.value:i);if(P(()=>{if(!o){const c=f.state.params||e.defaultParams||[];O.value&&f.options.refreshDeps===!0&&h.value&&f.run(...c)}}),!o&&f.options.refreshDeps!==!0){const c=f.state.params||e.defaultParams||[];v(i)&&f.run(...c)}return B(()=>{f.cancel()}),{...G(a),cancel:f.cancel.bind(f),refresh:f.refresh.bind(f),refreshAsync:f.refreshAsync.bind(f),run:f.run.bind(f),runAsync:f.runAsync.bind(f),mutate:f.mutate.bind(f)}}function Be(n,e,t){var s;const r=(s=[null,ne,le,fe,ge,be,I,te,pe])==null?void 0:s.filter(Boolean);return Se(n,e,[...t||[],...r])}export{Be as u};