Socket
Socket
Sign inDemoInstall

vue-request

Package Overview
Dependencies
Maintainers
2
Versions
39
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vue-request - npm Package Compare versions

Comparing version 2.0.3 to 2.0.4

7

CHANGELOG.md

@@ -5,2 +5,9 @@ # Changelog

### [2.0.4](https://github.com/attojs/vue-request/compare/v2.0.3...v2.0.4) (2023-10-16)
### Refactor
- `useRequest` 支持传入自定义插件 [#204](https://github.com/attojs/vue-request/issues/204) ([3280f44](https://github.com/attojs/vue-request/commit/3280f4402728252e0154e22140c5a3913d407823))
- 导出部分缺失的类型 [#215](https://github.com/attojs/vue-request/issues/215) [#217](https://github.com/attojs/vue-request/issues/217) ([35b07a4](https://github.com/attojs/vue-request/commit/35b07a4ffa22aca2cac3d1c46a0f4b99e4d1f206))
### [2.0.3](https://github.com/attojs/vue-request/compare/v2.0.2...v2.0.3) (2023-06-13)

@@ -7,0 +14,0 @@

@@ -5,2 +5,9 @@ # Changelog

### [2.0.4](https://github.com/attojs/vue-request/compare/v2.0.3...v2.0.4) (2023-10-16)
### Refactor
- `useRequest` supports passing custom plugins [#204](https://github.com/attojs/vue-request/issues/204) ([3280f44](https://github.com/attojs/vue-request/commit/3280f4402728252e0154e22140c5a3913d407823))
- expose some types [#215](https://github.com/attojs/vue-request/issues/215) [#217](https://github.com/attojs/vue-request/issues/217) ([35b07a4](https://github.com/attojs/vue-request/commit/35b07a4ffa22aca2cac3d1c46a0f4b99e4d1f206))
### [2.0.3](https://github.com/attojs/vue-request/compare/v2.0.2...v2.0.3) (2023-06-13)

@@ -7,0 +14,0 @@

4

dist/index.cjs.js

@@ -1165,4 +1165,4 @@ 'use strict';

function useRequest(service, options) {
return useQuery(service, options, [useLoadingDelayPlugin, useErrorRetryPlugin, useDebouncePlugin, usePollingPlugin, useThrottlePlugin, useRefreshOnWindowFocus, useRefreshDepsPlugin, useReadyPlugin, useCachePlugin]);
function useRequest(service, options, plugins) {
return useQuery(service, options, [...(plugins || []), useLoadingDelayPlugin, useErrorRetryPlugin, useDebouncePlugin, usePollingPlugin, useThrottlePlugin, useRefreshOnWindowFocus, useRefreshDepsPlugin, useReadyPlugin, useCachePlugin]);
}

@@ -1169,0 +1169,0 @@

@@ -1161,4 +1161,4 @@ import { isRef, ref, computed, watchEffect, watch, shallowRef, inject, onUnmounted, provide } from 'vue-demi';

function useRequest(service, options) {
return useQuery(service, options, [useLoadingDelayPlugin, useErrorRetryPlugin, useDebouncePlugin, usePollingPlugin, useThrottlePlugin, useRefreshOnWindowFocus, useRefreshDepsPlugin, useReadyPlugin, useCachePlugin]);
function useRequest(service, options, plugins) {
return useQuery(service, options, [...(plugins || []), useLoadingDelayPlugin, useErrorRetryPlugin, useDebouncePlugin, usePollingPlugin, useThrottlePlugin, useRefreshOnWindowFocus, useRefreshDepsPlugin, useReadyPlugin, useCachePlugin]);
}

@@ -1165,0 +1165,0 @@

@@ -139,6 +139,6 @@ import { WritableComputedRef, ComputedRef, Ref, WatchSource } from 'vue-demi';

declare function useRequest<R, P extends unknown[] = any>(service: Service<R, P>, options?: Options<R, P>): QueryResult<R, P>;
declare function useRequest<R, P extends unknown[] = any>(service: Service<R, P>, options?: Options<R, P>, plugins?: PluginImplementType<R, P>[]): QueryResult<R, P>;
declare const _default: (config: GlobalOptions) => void;
export { DataType, LoadMoreBaseOptions, LoadMoreService, Options, PaginationOptions, Service, clearCache, definePlugin, setGlobalOptions, useLoadMore, usePagination, useRequest, _default as useRequestProvider };
export { DataType, LoadMoreBaseOptions, LoadMoreQueryResult, LoadMoreService, Options, PaginationOptions, PaginationQueryResult, PluginImplementType, PluginType, QueryResult, Service, clearCache, definePlugin, setGlobalOptions, useLoadMore, usePagination, useRequest, _default as useRequestProvider };

@@ -1,1 +0,1 @@

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue-demi")):"function"==typeof define&&define.amd?define(["exports","vue-demi"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).VueRequest=e.VueRequest||{},e.vueDemi)}(this,(function(e,t){"use strict";const n={},r=Symbol("GLOBAL_OPTIONS_PROVIDE_KEY"),a=()=>n,o=e=>e,l=Object.prototype.toString,u=e=>"[object Object]"===(e=>l.call(e))(e),i=e=>Array.isArray(e),c=e=>null!==e&&"object"==typeof e,s=e=>e instanceof Function,v=e=>null==e,d="undefined"==typeof window,f=()=>{var e;return!(!d&&!v(null===(e=window.document)||void 0===e?void 0:e.visibilityState))||"visible"===window.document.visibilityState},m=()=>new Promise((()=>{})),h=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;const r=t.replace(/\[(\d+)\]/g,".$1").split(".");let a=e;for(const e of r)if(a=Object(a)[e],void 0===a)return n;return a};function p(e,t){const n=Object.assign({},e);for(const e of t)delete n[e];return n}const g=e=>t.isRef(e)?e.value:e,y=e=>c(e)?Object.assign(i(e)?[]:{},e):e,w=new Map;function E(e,t,n){let r,a,o,l,u,i,s=0,v=!1,d=!1,f=!0;const m=!t&&0!==t&&"function"==typeof window.requestAnimationFrame;if("function"!=typeof e)throw new TypeError("Expected a function");function h(t){const n=r,o=a;return r=a=void 0,s=t,l=e.apply(o,n),l}function p(e,t){return m?(window.cancelAnimationFrame(u),window.requestAnimationFrame(e)):setTimeout(e,t)}function g(e){const n=e-i;return void 0===i||n>=t||n<0||d&&e-s>=o}function y(){const e=Date.now();if(g(e))return w(e);u=p(y,function(e){const n=e-s,r=t-(e-i);return d?Math.min(r,o-n):r}(e))}function w(e){return u=void 0,f&&r?h(e):(r=a=void 0,l)}function E(){const e=Date.now(),n=g(e);for(var o=arguments.length,c=new Array(o),f=0;f<o;f++)c[f]=arguments[f];if(r=c,a=this,i=e,n){if(void 0===u)return function(e){return s=e,u=p(y,t),v?h(e):l}(i);if(d)return u=p(y,t),h(i)}return void 0===u&&(u=p(y,t)),l}return t=+t||0,c(n)&&(v=!!n.leading,d="maxWait"in n,o=d?Math.max(+n.maxWait||0,t):o,f="trailing"in n?!!n.trailing:f),E.cancel=function(){void 0!==u&&function(e){if(m)return window.cancelAnimationFrame(e);clearTimeout(e)}(u),s=0,r=i=a=u=void 0},E.flush=function(){return void 0===u?l:w(Date.now())},E.pending=function(){return void 0!==u},E}function A(e,t){for(const n in t)void 0!==t[n]&&(c(t[n])&&c(e[n])&&n in e?(u(t[n])||i(t[n]))&&A(e[n],t[n]):e[n]=t[n])}function T(e){const t=Object.assign({},e);for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];if(!r.length)return t;for(const e of r)A(t,e);return t}var x=(e,n)=>{let{debounceInterval:r,debounceOptions:a,manual:o}=n;const l=t.ref(!1),u=t.ref(),i=t.computed((()=>a)),c=t.computed((()=>g(r))),s=t.ref(e.context.runAsync);return o||(l.value=!0),t.watchEffect((t=>{v(c.value)||(u.value=E((e=>e()),c.value,i.value),e.context.runAsync=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new Promise(((e,n)=>{l.value?(l.value=!1,s.value(...t).then(e).catch(n)):u.value((()=>{s.value(...t).then(e).catch(n)}))}))},t((()=>{var t;null===(t=u.value)||void 0===t||t.cancel(),e.context.runAsync=s.value})))})),{onCancel(){var e;null===(e=u.value)||void 0===e||e.cancel()}}},S=(e,n)=>{let{errorRetryCount:r=0,errorRetryInterval:a=0}=n;const o=t.ref(),l=t.ref(0),u=t.computed((()=>g(r))),i=t.computed((()=>g(a)));let c=!1;const s=()=>{l.value=0},v=t.computed((()=>{if(i.value)return i.value;return 1e3*Math.floor(Math.random()*2**Math.min(l.value,9)+1)})),d=()=>{o.value&&o.value()};return{onBefore(){c||s(),c=!1,d()},onSuccess(){s()},onError(){o.value=(()=>{let t;const n=-1===u.value,r=l.value<u.value;return(n||r)&&(n||(l.value+=1),t=setTimeout((()=>{c=!0,e.context.refresh()}),v.value)),()=>t&&clearTimeout(t)})()},onCancel(){s(),d()}}},P=(e,n)=>{let{ready:r=t.ref(!0),manual:a,defaultParams:o=[]}=n;return t.watch(r,(t=>{!a&&t&&e.context.run(...o)}),{flush:"sync"}),{onBefore(){if(!(s(r)?r():r.value))return e.loading.value=!1,{isBreak:!0}}}},b=(e,n)=>{let{refreshDeps:r,refreshDepsAction:a,manual:o}=n;if(void 0===r||i(r)&&0===r.length)return{};const l=i(r)?r:[r];return t.watch(l,(()=>{a?a():!o&&e.context.refresh()})),{}},O=(e,n)=>{let{throttleInterval:r,throttleOptions:a}=n;const o=t.ref(),l=t.computed((()=>g(r))),u=t.computed((()=>a)),i=t.ref(e.context.runAsync);return t.watchEffect((t=>{if(v(r))return{};o.value=function(e,t,n){let r=!0,a=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return c(n)&&(r="leading"in n?!!n.leading:r,a="trailing"in n?!!n.trailing:a),E(e,t,{leading:r,trailing:a,maxWait:t})}((e=>e()),l.value,u.value),e.context.runAsync=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new Promise(((e,n)=>{o.value((()=>{i.value(...t).then(e).catch(n)}))}))},t((()=>{var t;null===(t=o.value)||void 0===t||t.cancel(),e.context.runAsync=i.value}))})),{onCancel(){var e;null===(e=o.value)||void 0===e||e.cancel()}}};const R=(e,n,r)=>{var a,o;const{initialData:l,onSuccess:u,onError:i,onBefore:c,onAfter:v}=n,d=t.ref(null!==(a=null==r?void 0:r.loading)&&void 0!==a&&a),f=t.shallowRef(null!==(o=null==r?void 0:r.data)&&void 0!==o?o:l),h=t.shallowRef(null==r?void 0:r.error),p=t.ref(null==r?void 0:r.params),g=t.ref([]),w=t.shallowRef("pending"),E={},A=(T={status:w,loading:d,data:f,error:h,params:p},x=[],e=>{Object.keys(e).forEach((t=>{T[t].value=e[t]})),x.forEach((e=>e(T)))});var T,x;const S=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];if("onQuery"===e){const e=g.value.map((e=>e.onQuery)).filter(Boolean);return{servicePromise:(a=e,o=n[0],()=>{let e=o;for(let t=a.length;t-- >0;)e=a[t](e);return e()})()}}{const t=g.value.map((t=>{var r;return null===(r=t[e])||void 0===r?void 0:r.call(t,...n)}));return Object.assign({},...t)}var a,o},P=t.ref(0);return E.runAsync=async function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];A({loading:!0,params:n,status:"pending"}),P.value+=1;const a=P.value,{isBreak:o,breakResult:l=m()}=S("onBefore",n);if(o)return A({status:"settled"}),l;null==c||c(n);try{const t=()=>new Promise((t=>t(e(...p.value))));let{servicePromise:r}=S("onQuery",t);r||(r=t());const o=await r;return a!==P.value?m():(A({data:o,loading:!1,error:void 0,status:"settled"}),S("onSuccess",o,n),null==u||u(o,n),a===P.value&&S("onAfter",n,o,void 0),null==v||v(n),o)}catch(e){if(a!==P.value)return m();throw A({loading:!1,error:e,status:"settled"}),S("onError",e,n),null==i||i(e,n),a===P.value&&S("onAfter",n,void 0,e),null==v||v(n),e}},E.run=function(){E.runAsync(...arguments).catch((e=>{i||console.error(e)}))},E.cancel=()=>{P.value+=1,A({loading:!1}),S("onCancel")},E.refresh=()=>{E.run(...p.value||[])},E.refreshAsync=()=>E.runAsync(...p.value||[]),E.mutate=e=>{const t=s(e)?e(f.value):e,n=y(t);A({data:n}),S("onMutate",n)},{status:w,loading:d,data:f,error:h,params:p,plugins:g,context:E}};function M(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;const l=t.inject(r,{}),u={...a(),...l,...n},{manual:i=!1,defaultParams:c=[]}=u,s=R(e,u);if(s.plugins.value=o.map((e=>e(s,u))),!i){const e=s.params.value||c;s.context.run(...e)}return t.onUnmounted((()=>{s.context.cancel()})),{loading:s.loading,data:s.data,error:s.error,params:s.params,cancel:s.context.cancel,refresh:s.context.refresh,refreshAsync:s.context.refreshAsync,mutate:s.context.mutate,run:s.context.run,runAsync:s.context.runAsync}}const j=new Map,I=new Map;var L=(e,n)=>{let{cacheKey:r,cacheTime:a=6e5,staleTime:o=0,getCache:l,setCache:u}=n;if(!r)return{};const i=s(r)?r:()=>r,c=t.ref((()=>{}));let d;const f=e=>l?l(e):(e=>{if(v(e))return;return w.get(e)})(e),m=(e,t,n)=>{u?u(e,n):((e,t,n)=>{const r=w.get(e);null!=r&&r.timer&&clearTimeout(r.timer);const a=setTimeout((()=>w.delete(e)),t);w.set(e,{...n,timer:a})})(e,t,n),((e,t)=>{I.has(e)&&I.get(e).forEach((e=>e(t)))})(e,n.data)},h=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),p=t=>{const n=i(t);return r=n,a=t=>{e.data.value=t},I.has(r)?I.get(r).push(a):I.set(r,[a]),()=>{const e=I.get(r).indexOf(a);I.get(r).splice(e,1)};var r,a},g=i(),y=f(g);return y&&h(y,"data")&&(e.data.value=y.data,e.params.value=y.params),g&&(c.value=p()),t.onUnmounted((()=>{c.value()})),{onBefore(t){const n=i(t),r=f(n);return r&&h(r,"data")?(a=r.time,-1===o||a+o>(new Date).getTime()?(e.data.value=r.data,e.loading.value=!1,{isBreak:!0,breakResult:r.data}):void(e.data.value=r.data)):{};var a},onQuery(t){const n=e.params.value,r=i(n);let a=(e=>j.get(e))(r);return a&&a!==d||(a=t(),d=a,((e,t)=>{j.set(e,t),t.then((t=>(j.delete(e),t))).catch((()=>{j.delete(e)}))})(r,a)),()=>a},onSuccess(e,t){const n=i(t);n&&(c.value(),m(n,a,{data:e,params:t,time:(new Date).getTime()}),c.value=p(t))},onMutate(t){const n=i(e.params.value);n&&(c.value(),m(n,a,{data:t,params:e.params.value,time:(new Date).getTime()}),c.value=p(e.params.value))}}};function C(){return(new Date).getTime()}var B,D=(e,n)=>{let{loadingDelay:r=0,loadingKeep:a=0}=n;const o=t.ref((()=>{})),l=t.computed((()=>g(r))),u=t.computed((()=>g(a)));let i=0,c={};return{onBefore(){e.loading.value=!l.value,o.value(),o.value=(()=>{let t;return l.value&&(t=setTimeout((()=>{"pending"===e.status.value&&(e.loading.value=!0)}),l.value)),()=>t&&clearTimeout(t)})(),i=C()},onQuery(e){if(!u.value)return()=>e();c=function(e){let t,n;return new class extends Promise{constructor(e){super(e),this.cancel=()=>{n(),clearTimeout(t)}}}((r=>{n=r,t=setTimeout(n,e)}))}(u.value+l.value);const t=Promise.allSettled([(async()=>{try{const t=await e();return C()-i<=l.value&&c.cancel(),Promise.resolve(t)}catch(e){return C()-i<=l.value&&c.cancel(),Promise.reject(e)}})(),c]).then((e=>{const t=e[0];return"fulfilled"===t.status?t.value:Promise.reject(t.reason)}));return()=>t},onCancel(){o.value()},onAfter(){o.value()}}};const N=new Set,_=new Set,K=new Set,k=(e,t)=>{let n;switch(e){case"FOCUS_LISTENER":n=N;break;case"RECONNECT_LISTENER":n=K;break;case"VISIBLE_LISTENER":n=_}if(!n.has(t))return n.add(t),()=>{n.delete(t)}},q=e=>{e.forEach((e=>{e()}))};!d&&null!==(B=window)&&void 0!==B&&B.addEventListener&&(window.addEventListener("visibilitychange",(()=>{f()&&q(_)}),!1),window.addEventListener("focus",(()=>q(N)),!1),window.addEventListener("online",(()=>q(K)),!1));var F=(e,n)=>{let{pollingInterval:r,pollingWhenHidden:a=!1,pollingWhenOffline:o=!1,errorRetryCount:l=0}=n;const u=t.ref(),i=t.ref(!1),c=t.computed((()=>g(r))),s=t.computed((()=>g(l))),m=[],h=e=>{e&&m.push(e)},p=()=>(a||f())&&(o||(()=>{var e,t;return null===(e=!d&&(null===(t=window.navigator)||void 0===t?void 0:t.onLine))||void 0===e||e})()),y=t=>{if(e.error.value&&0!==s.value)return;let n;if(!v(c.value)&&c.value>=0){if(!p())return void(i.value=!0);n=setTimeout(t,c.value)}return()=>n&&clearTimeout(n)},w=()=>{i.value&&p()&&(e.context.refresh(),i.value=!1)};return t.watch(c,(()=>{u.value&&(u.value(),u.value=y((()=>e.context.refresh())))})),a||h(k("VISIBLE_LISTENER",w)),o||h(k("RECONNECT_LISTENER",w)),t.onUnmounted((()=>{m.forEach((e=>e()))})),{onBefore(){var e;null===(e=u.value)||void 0===e||e.call(u)},onCancel(){var e;null===(e=u.value)||void 0===e||e.call(u)},onAfter(){u.value=y((()=>e.context.refresh()))}}};var W=(e,n)=>{let{refreshOnWindowFocus:r=!1,refocusTimespan:a=5e3}=n;const o=t.computed((()=>g(r))),l=t.computed((()=>g(a))),u=[],i=e=>{e&&u.push(e)},c=()=>{u.forEach((e=>e()))};return t.watchEffect((()=>{if(c(),o.value){const t=((e,t)=>{let n=!1;return function(){n||(n=!0,e(...arguments),setTimeout((()=>{n=!1}),t))}})(e.context.refresh,l.value);i(k("VISIBLE_LISTENER",t)),i(k("FOCUS_LISTENER",t))}})),t.onUnmounted((()=>{c()})),{}};function U(e,t){return M(e,t,[D,S,x,F,O,W,b,P,L])}e.clearCache=e=>{if(e){var t;const n=null===(t=w.get(e))||void 0===t?void 0:t.timer;n&&clearTimeout(n),w.delete(e)}else w.forEach((e=>e.timer&&clearTimeout(e.timer))),w.clear()},e.definePlugin=o,e.setGlobalOptions=e=>{Object.keys(e).forEach((t=>{n[t]=e[t]}))},e.useLoadMore=function(e,n){const{isNoMore:r,...a}=null!=n?n:{},o=t.shallowRef(),l=t.computed((()=>{var e;return(null===(e=o.value)||void 0===e?void 0:e.list)||[]})),u=t.ref(!1),i=t.ref(!1),c=t.ref(0),{runAsync:v,run:d,cancel:f,...m}=M((async t=>{const n=c.value,r=await e(t);return n===c.value&&(o.value=t?{...r,list:[...t.list,...r.list]}:r),r}),{...a,defaultParams:[],refreshDepsAction:()=>{null!=a&&a.refreshDepsAction?a.refreshDepsAction():w()},onError:e=>{var t;null==a||null===(t=a.onError)||void 0===t||t.call(a,e)},onSuccess:e=>{var t;null==a||null===(t=a.onSuccess)||void 0===t||t.call(a,e)},onBefore:()=>{var e;c.value+=1,i.value&&(i.value=!1,u.value=!0),null==a||null===(e=a.onBefore)||void 0===e||e.call(a)},onAfter:()=>{var e;u.value=!1,i.value=!1,null==a||null===(e=a.onAfter)||void 0===e||e.call(a)}},[S,x,O,b,P]),h=t.computed((()=>!(!r||!s(r))&&r(o.value))),g=()=>h.value?Promise.reject(function(e){const t=`Warning: [vue-request] ${e}`;if(arguments.length>1&&void 0!==arguments[1]&&arguments[1])return new Error(t);console.error(t)}("No more data. You need to ignore this error by checking if `noMore` is false before calling `loadMoreAsync`",!0)):(i.value=!0,v(o.value)),w=()=>d();return{data:o,dataList:l,loadingMore:u,noMore:h,cancel:()=>{c.value+=1,f(),u.value=!1},mutate:e=>{const t=s(e)?e(o.value):e,n=y(t);o.value=n},refresh:w,refreshAsync:()=>v(),loadMore:()=>{g().catch((()=>{}))},loadMoreAsync:g,...p(m,["refresh","refreshAsync","mutate","params","data"])}},e.usePagination=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=t.inject(r,{}),{pagination:l,...u}=n,{currentKey:i,pageSizeKey:c,totalKey:s,totalPageKey:v}=T({currentKey:"current",pageSizeKey:"pageSize",totalKey:"total",totalPageKey:"totalPage"},a().pagination||{},o.pagination||{},l||{}),d=T({defaultParams:[{[i]:1,[c]:10}]},u),{data:f,params:m,run:p,...g}=U(e,d),y=e=>{const[t,...n]=m.value||[],r=[{...t,...e},...n];p(...r)},w=e=>{y({[i]:e})},E=e=>{y({[c]:e})},A=t.computed((()=>h(f.value,s,0))),x=t.computed({get:()=>{var e,t,n;return null!==(e=null===(t=m.value)||void 0===t||null===(n=t[0])||void 0===n?void 0:n[i])&&void 0!==e?e:d.defaultParams[0][i]},set:e=>{w(e)}}),S=t.computed({get:()=>{var e,t,n;return null!==(e=null===(t=m.value)||void 0===t||null===(n=t[0])||void 0===n?void 0:n[c])&&void 0!==e?e:d.defaultParams[0][c]},set:e=>{E(e)}}),P=t.computed((()=>h(f.value,v,Math.ceil(A.value/S.value))));return{data:f,params:m,current:x,pageSize:S,total:A,totalPage:P,run:p,changeCurrent:w,changePageSize:E,changePagination:(e,t)=>{y({[i]:e,[c]:t})},...g}},e.useRequest=U,e.useRequestProvider=e=>{t.provide(r,e)},Object.defineProperty(e,"__esModule",{value:!0})}));
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue-demi")):"function"==typeof define&&define.amd?define(["exports","vue-demi"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).VueRequest=e.VueRequest||{},e.vueDemi)}(this,(function(e,t){"use strict";const n={},r=Symbol("GLOBAL_OPTIONS_PROVIDE_KEY"),a=()=>n,o=e=>e,l=Object.prototype.toString,u=e=>"[object Object]"===(e=>l.call(e))(e),i=e=>Array.isArray(e),c=e=>null!==e&&"object"==typeof e,s=e=>e instanceof Function,v=e=>null==e,d="undefined"==typeof window,f=()=>{var e;return!(!d&&!v(null===(e=window.document)||void 0===e?void 0:e.visibilityState))||"visible"===window.document.visibilityState},m=()=>new Promise((()=>{})),h=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;const r=t.replace(/\[(\d+)\]/g,".$1").split(".");let a=e;for(const e of r)if(a=Object(a)[e],void 0===a)return n;return a};function p(e,t){const n=Object.assign({},e);for(const e of t)delete n[e];return n}const g=e=>t.isRef(e)?e.value:e,y=e=>c(e)?Object.assign(i(e)?[]:{},e):e,w=new Map;function E(e,t,n){let r,a,o,l,u,i,s=0,v=!1,d=!1,f=!0;const m=!t&&0!==t&&"function"==typeof window.requestAnimationFrame;if("function"!=typeof e)throw new TypeError("Expected a function");function h(t){const n=r,o=a;return r=a=void 0,s=t,l=e.apply(o,n),l}function p(e,t){return m?(window.cancelAnimationFrame(u),window.requestAnimationFrame(e)):setTimeout(e,t)}function g(e){const n=e-i;return void 0===i||n>=t||n<0||d&&e-s>=o}function y(){const e=Date.now();if(g(e))return w(e);u=p(y,function(e){const n=e-s,r=t-(e-i);return d?Math.min(r,o-n):r}(e))}function w(e){return u=void 0,f&&r?h(e):(r=a=void 0,l)}function E(){const e=Date.now(),n=g(e);for(var o=arguments.length,c=new Array(o),f=0;f<o;f++)c[f]=arguments[f];if(r=c,a=this,i=e,n){if(void 0===u)return function(e){return s=e,u=p(y,t),v?h(e):l}(i);if(d)return u=p(y,t),h(i)}return void 0===u&&(u=p(y,t)),l}return t=+t||0,c(n)&&(v=!!n.leading,d="maxWait"in n,o=d?Math.max(+n.maxWait||0,t):o,f="trailing"in n?!!n.trailing:f),E.cancel=function(){void 0!==u&&function(e){if(m)return window.cancelAnimationFrame(e);clearTimeout(e)}(u),s=0,r=i=a=u=void 0},E.flush=function(){return void 0===u?l:w(Date.now())},E.pending=function(){return void 0!==u},E}function A(e,t){for(const n in t)void 0!==t[n]&&(c(t[n])&&c(e[n])&&n in e?(u(t[n])||i(t[n]))&&A(e[n],t[n]):e[n]=t[n])}function T(e){const t=Object.assign({},e);for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];if(!r.length)return t;for(const e of r)A(t,e);return t}var x=(e,n)=>{let{debounceInterval:r,debounceOptions:a,manual:o}=n;const l=t.ref(!1),u=t.ref(),i=t.computed((()=>a)),c=t.computed((()=>g(r))),s=t.ref(e.context.runAsync);return o||(l.value=!0),t.watchEffect((t=>{v(c.value)||(u.value=E((e=>e()),c.value,i.value),e.context.runAsync=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new Promise(((e,n)=>{l.value?(l.value=!1,s.value(...t).then(e).catch(n)):u.value((()=>{s.value(...t).then(e).catch(n)}))}))},t((()=>{var t;null===(t=u.value)||void 0===t||t.cancel(),e.context.runAsync=s.value})))})),{onCancel(){var e;null===(e=u.value)||void 0===e||e.cancel()}}},S=(e,n)=>{let{errorRetryCount:r=0,errorRetryInterval:a=0}=n;const o=t.ref(),l=t.ref(0),u=t.computed((()=>g(r))),i=t.computed((()=>g(a)));let c=!1;const s=()=>{l.value=0},v=t.computed((()=>{if(i.value)return i.value;return 1e3*Math.floor(Math.random()*2**Math.min(l.value,9)+1)})),d=()=>{o.value&&o.value()};return{onBefore(){c||s(),c=!1,d()},onSuccess(){s()},onError(){o.value=(()=>{let t;const n=-1===u.value,r=l.value<u.value;return(n||r)&&(n||(l.value+=1),t=setTimeout((()=>{c=!0,e.context.refresh()}),v.value)),()=>t&&clearTimeout(t)})()},onCancel(){s(),d()}}},P=(e,n)=>{let{ready:r=t.ref(!0),manual:a,defaultParams:o=[]}=n;return t.watch(r,(t=>{!a&&t&&e.context.run(...o)}),{flush:"sync"}),{onBefore(){if(!(s(r)?r():r.value))return e.loading.value=!1,{isBreak:!0}}}},b=(e,n)=>{let{refreshDeps:r,refreshDepsAction:a,manual:o}=n;if(void 0===r||i(r)&&0===r.length)return{};const l=i(r)?r:[r];return t.watch(l,(()=>{a?a():!o&&e.context.refresh()})),{}},O=(e,n)=>{let{throttleInterval:r,throttleOptions:a}=n;const o=t.ref(),l=t.computed((()=>g(r))),u=t.computed((()=>a)),i=t.ref(e.context.runAsync);return t.watchEffect((t=>{if(v(r))return{};o.value=function(e,t,n){let r=!0,a=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return c(n)&&(r="leading"in n?!!n.leading:r,a="trailing"in n?!!n.trailing:a),E(e,t,{leading:r,trailing:a,maxWait:t})}((e=>e()),l.value,u.value),e.context.runAsync=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new Promise(((e,n)=>{o.value((()=>{i.value(...t).then(e).catch(n)}))}))},t((()=>{var t;null===(t=o.value)||void 0===t||t.cancel(),e.context.runAsync=i.value}))})),{onCancel(){var e;null===(e=o.value)||void 0===e||e.cancel()}}};const R=(e,n,r)=>{var a,o;const{initialData:l,onSuccess:u,onError:i,onBefore:c,onAfter:v}=n,d=t.ref(null!==(a=null==r?void 0:r.loading)&&void 0!==a&&a),f=t.shallowRef(null!==(o=null==r?void 0:r.data)&&void 0!==o?o:l),h=t.shallowRef(null==r?void 0:r.error),p=t.ref(null==r?void 0:r.params),g=t.ref([]),w=t.shallowRef("pending"),E={},A=(T={status:w,loading:d,data:f,error:h,params:p},x=[],e=>{Object.keys(e).forEach((t=>{T[t].value=e[t]})),x.forEach((e=>e(T)))});var T,x;const S=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];if("onQuery"===e){const e=g.value.map((e=>e.onQuery)).filter(Boolean);return{servicePromise:(a=e,o=n[0],()=>{let e=o;for(let t=a.length;t-- >0;)e=a[t](e);return e()})()}}{const t=g.value.map((t=>{var r;return null===(r=t[e])||void 0===r?void 0:r.call(t,...n)}));return Object.assign({},...t)}var a,o},P=t.ref(0);return E.runAsync=async function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];A({loading:!0,params:n,status:"pending"}),P.value+=1;const a=P.value,{isBreak:o,breakResult:l=m()}=S("onBefore",n);if(o)return A({status:"settled"}),l;null==c||c(n);try{const t=()=>new Promise((t=>t(e(...p.value))));let{servicePromise:r}=S("onQuery",t);r||(r=t());const o=await r;return a!==P.value?m():(A({data:o,loading:!1,error:void 0,status:"settled"}),S("onSuccess",o,n),null==u||u(o,n),a===P.value&&S("onAfter",n,o,void 0),null==v||v(n),o)}catch(e){if(a!==P.value)return m();throw A({loading:!1,error:e,status:"settled"}),S("onError",e,n),null==i||i(e,n),a===P.value&&S("onAfter",n,void 0,e),null==v||v(n),e}},E.run=function(){E.runAsync(...arguments).catch((e=>{i||console.error(e)}))},E.cancel=()=>{P.value+=1,A({loading:!1}),S("onCancel")},E.refresh=()=>{E.run(...p.value||[])},E.refreshAsync=()=>E.runAsync(...p.value||[]),E.mutate=e=>{const t=s(e)?e(f.value):e,n=y(t);A({data:n}),S("onMutate",n)},{status:w,loading:d,data:f,error:h,params:p,plugins:g,context:E}};function M(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;const l=t.inject(r,{}),u={...a(),...l,...n},{manual:i=!1,defaultParams:c=[]}=u,s=R(e,u);if(s.plugins.value=o.map((e=>e(s,u))),!i){const e=s.params.value||c;s.context.run(...e)}return t.onUnmounted((()=>{s.context.cancel()})),{loading:s.loading,data:s.data,error:s.error,params:s.params,cancel:s.context.cancel,refresh:s.context.refresh,refreshAsync:s.context.refreshAsync,mutate:s.context.mutate,run:s.context.run,runAsync:s.context.runAsync}}const j=new Map,I=new Map;var L=(e,n)=>{let{cacheKey:r,cacheTime:a=6e5,staleTime:o=0,getCache:l,setCache:u}=n;if(!r)return{};const i=s(r)?r:()=>r,c=t.ref((()=>{}));let d;const f=e=>l?l(e):(e=>{if(v(e))return;return w.get(e)})(e),m=(e,t,n)=>{u?u(e,n):((e,t,n)=>{const r=w.get(e);null!=r&&r.timer&&clearTimeout(r.timer);const a=setTimeout((()=>w.delete(e)),t);w.set(e,{...n,timer:a})})(e,t,n),((e,t)=>{I.has(e)&&I.get(e).forEach((e=>e(t)))})(e,n.data)},h=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),p=t=>{const n=i(t);return r=n,a=t=>{e.data.value=t},I.has(r)?I.get(r).push(a):I.set(r,[a]),()=>{const e=I.get(r).indexOf(a);I.get(r).splice(e,1)};var r,a},g=i(),y=f(g);return y&&h(y,"data")&&(e.data.value=y.data,e.params.value=y.params),g&&(c.value=p()),t.onUnmounted((()=>{c.value()})),{onBefore(t){const n=i(t),r=f(n);return r&&h(r,"data")?(a=r.time,-1===o||a+o>(new Date).getTime()?(e.data.value=r.data,e.loading.value=!1,{isBreak:!0,breakResult:r.data}):void(e.data.value=r.data)):{};var a},onQuery(t){const n=e.params.value,r=i(n);let a=(e=>j.get(e))(r);return a&&a!==d||(a=t(),d=a,((e,t)=>{j.set(e,t),t.then((t=>(j.delete(e),t))).catch((()=>{j.delete(e)}))})(r,a)),()=>a},onSuccess(e,t){const n=i(t);n&&(c.value(),m(n,a,{data:e,params:t,time:(new Date).getTime()}),c.value=p(t))},onMutate(t){const n=i(e.params.value);n&&(c.value(),m(n,a,{data:t,params:e.params.value,time:(new Date).getTime()}),c.value=p(e.params.value))}}};function C(){return(new Date).getTime()}var B,D=(e,n)=>{let{loadingDelay:r=0,loadingKeep:a=0}=n;const o=t.ref((()=>{})),l=t.computed((()=>g(r))),u=t.computed((()=>g(a)));let i=0,c={};return{onBefore(){e.loading.value=!l.value,o.value(),o.value=(()=>{let t;return l.value&&(t=setTimeout((()=>{"pending"===e.status.value&&(e.loading.value=!0)}),l.value)),()=>t&&clearTimeout(t)})(),i=C()},onQuery(e){if(!u.value)return()=>e();c=function(e){let t,n;return new class extends Promise{constructor(e){super(e),this.cancel=()=>{n(),clearTimeout(t)}}}((r=>{n=r,t=setTimeout(n,e)}))}(u.value+l.value);const t=Promise.allSettled([(async()=>{try{const t=await e();return C()-i<=l.value&&c.cancel(),Promise.resolve(t)}catch(e){return C()-i<=l.value&&c.cancel(),Promise.reject(e)}})(),c]).then((e=>{const t=e[0];return"fulfilled"===t.status?t.value:Promise.reject(t.reason)}));return()=>t},onCancel(){o.value()},onAfter(){o.value()}}};const N=new Set,_=new Set,K=new Set,k=(e,t)=>{let n;switch(e){case"FOCUS_LISTENER":n=N;break;case"RECONNECT_LISTENER":n=K;break;case"VISIBLE_LISTENER":n=_}if(!n.has(t))return n.add(t),()=>{n.delete(t)}},q=e=>{e.forEach((e=>{e()}))};!d&&null!==(B=window)&&void 0!==B&&B.addEventListener&&(window.addEventListener("visibilitychange",(()=>{f()&&q(_)}),!1),window.addEventListener("focus",(()=>q(N)),!1),window.addEventListener("online",(()=>q(K)),!1));var F=(e,n)=>{let{pollingInterval:r,pollingWhenHidden:a=!1,pollingWhenOffline:o=!1,errorRetryCount:l=0}=n;const u=t.ref(),i=t.ref(!1),c=t.computed((()=>g(r))),s=t.computed((()=>g(l))),m=[],h=e=>{e&&m.push(e)},p=()=>(a||f())&&(o||(()=>{var e,t;return null===(e=!d&&(null===(t=window.navigator)||void 0===t?void 0:t.onLine))||void 0===e||e})()),y=t=>{if(e.error.value&&0!==s.value)return;let n;if(!v(c.value)&&c.value>=0){if(!p())return void(i.value=!0);n=setTimeout(t,c.value)}return()=>n&&clearTimeout(n)},w=()=>{i.value&&p()&&(e.context.refresh(),i.value=!1)};return t.watch(c,(()=>{u.value&&(u.value(),u.value=y((()=>e.context.refresh())))})),a||h(k("VISIBLE_LISTENER",w)),o||h(k("RECONNECT_LISTENER",w)),t.onUnmounted((()=>{m.forEach((e=>e()))})),{onBefore(){var e;null===(e=u.value)||void 0===e||e.call(u)},onCancel(){var e;null===(e=u.value)||void 0===e||e.call(u)},onAfter(){u.value=y((()=>e.context.refresh()))}}};var W=(e,n)=>{let{refreshOnWindowFocus:r=!1,refocusTimespan:a=5e3}=n;const o=t.computed((()=>g(r))),l=t.computed((()=>g(a))),u=[],i=e=>{e&&u.push(e)},c=()=>{u.forEach((e=>e()))};return t.watchEffect((()=>{if(c(),o.value){const t=((e,t)=>{let n=!1;return function(){n||(n=!0,e(...arguments),setTimeout((()=>{n=!1}),t))}})(e.context.refresh,l.value);i(k("VISIBLE_LISTENER",t)),i(k("FOCUS_LISTENER",t))}})),t.onUnmounted((()=>{c()})),{}};function U(e,t,n){return M(e,t,[...n||[],D,S,x,F,O,W,b,P,L])}e.clearCache=e=>{if(e){var t;const n=null===(t=w.get(e))||void 0===t?void 0:t.timer;n&&clearTimeout(n),w.delete(e)}else w.forEach((e=>e.timer&&clearTimeout(e.timer))),w.clear()},e.definePlugin=o,e.setGlobalOptions=e=>{Object.keys(e).forEach((t=>{n[t]=e[t]}))},e.useLoadMore=function(e,n){const{isNoMore:r,...a}=null!=n?n:{},o=t.shallowRef(),l=t.computed((()=>{var e;return(null===(e=o.value)||void 0===e?void 0:e.list)||[]})),u=t.ref(!1),i=t.ref(!1),c=t.ref(0),{runAsync:v,run:d,cancel:f,...m}=M((async t=>{const n=c.value,r=await e(t);return n===c.value&&(o.value=t?{...r,list:[...t.list,...r.list]}:r),r}),{...a,defaultParams:[],refreshDepsAction:()=>{null!=a&&a.refreshDepsAction?a.refreshDepsAction():w()},onError:e=>{var t;null==a||null===(t=a.onError)||void 0===t||t.call(a,e)},onSuccess:e=>{var t;null==a||null===(t=a.onSuccess)||void 0===t||t.call(a,e)},onBefore:()=>{var e;c.value+=1,i.value&&(i.value=!1,u.value=!0),null==a||null===(e=a.onBefore)||void 0===e||e.call(a)},onAfter:()=>{var e;u.value=!1,i.value=!1,null==a||null===(e=a.onAfter)||void 0===e||e.call(a)}},[S,x,O,b,P]),h=t.computed((()=>!(!r||!s(r))&&r(o.value))),g=()=>h.value?Promise.reject(function(e){const t=`Warning: [vue-request] ${e}`;if(arguments.length>1&&void 0!==arguments[1]&&arguments[1])return new Error(t);console.error(t)}("No more data. You need to ignore this error by checking if `noMore` is false before calling `loadMoreAsync`",!0)):(i.value=!0,v(o.value)),w=()=>d();return{data:o,dataList:l,loadingMore:u,noMore:h,cancel:()=>{c.value+=1,f(),u.value=!1},mutate:e=>{const t=s(e)?e(o.value):e,n=y(t);o.value=n},refresh:w,refreshAsync:()=>v(),loadMore:()=>{g().catch((()=>{}))},loadMoreAsync:g,...p(m,["refresh","refreshAsync","mutate","params","data"])}},e.usePagination=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=t.inject(r,{}),{pagination:l,...u}=n,{currentKey:i,pageSizeKey:c,totalKey:s,totalPageKey:v}=T({currentKey:"current",pageSizeKey:"pageSize",totalKey:"total",totalPageKey:"totalPage"},a().pagination||{},o.pagination||{},l||{}),d=T({defaultParams:[{[i]:1,[c]:10}]},u),{data:f,params:m,run:p,...g}=U(e,d),y=e=>{const[t,...n]=m.value||[],r=[{...t,...e},...n];p(...r)},w=e=>{y({[i]:e})},E=e=>{y({[c]:e})},A=t.computed((()=>h(f.value,s,0))),x=t.computed({get:()=>{var e,t,n;return null!==(e=null===(t=m.value)||void 0===t||null===(n=t[0])||void 0===n?void 0:n[i])&&void 0!==e?e:d.defaultParams[0][i]},set:e=>{w(e)}}),S=t.computed({get:()=>{var e,t,n;return null!==(e=null===(t=m.value)||void 0===t||null===(n=t[0])||void 0===n?void 0:n[c])&&void 0!==e?e:d.defaultParams[0][c]},set:e=>{E(e)}}),P=t.computed((()=>h(f.value,v,Math.ceil(A.value/S.value))));return{data:f,params:m,current:x,pageSize:S,total:A,totalPage:P,run:p,changeCurrent:w,changePageSize:E,changePagination:(e,t)=>{y({[i]:e,[c]:t})},...g}},e.useRequest=U,e.useRequestProvider=e=>{t.provide(r,e)},Object.defineProperty(e,"__esModule",{value:!0})}));
{
"name": "vue-request",
"version": "2.0.3",
"version": "2.0.4",
"description": "This is a library that can easily help you manage request states, supporting common features such as SWR, polling, error retry, caching, and pagination, etc.",

@@ -5,0 +5,0 @@ "keywords": [

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc