@vue-composable/core
Advanced tools
Comparing version 1.0.0-dev.3 to 1.0.0-dev.4
@@ -17,3 +17,3 @@ 'use strict'; | ||
const isSymbol = (val) => typeof val === "symbol"; | ||
const isBoolean = (val) => typeof val === 'boolean'; | ||
const isBoolean = (val) => typeof val === "boolean"; | ||
const isDate = (val) => isObject(val) && isFunction(val.getTime); | ||
@@ -26,2 +26,3 @@ const isNumber = (val) => typeof val === "number"; | ||
} | ||
const NO_OP = () => { }; | ||
function promisedTimeout(timeout) { | ||
@@ -374,2 +375,3 @@ return new Promise(res => { | ||
exports.NO_OP = NO_OP; | ||
exports.debounce = debounce; | ||
@@ -376,0 +378,0 @@ exports.exponentialDelay = exponentialDelay; |
@@ -17,3 +17,3 @@ 'use strict'; | ||
const isSymbol = (val) => typeof val === "symbol"; | ||
const isBoolean = (val) => typeof val === 'boolean'; | ||
const isBoolean = (val) => typeof val === "boolean"; | ||
const isDate = (val) => isObject(val) && isFunction(val.getTime); | ||
@@ -26,2 +26,3 @@ const isNumber = (val) => typeof val === "number"; | ||
} | ||
const NO_OP = () => { }; | ||
function promisedTimeout(timeout) { | ||
@@ -362,2 +363,3 @@ return new Promise(res => { | ||
exports.NO_OP = NO_OP; | ||
exports.debounce = debounce; | ||
@@ -364,0 +366,0 @@ exports.exponentialDelay = exponentialDelay; |
@@ -45,2 +45,4 @@ import { Ref } from '@vue/composition-api'; | ||
export declare const NO_OP: () => void; | ||
export declare const noDelay: RetryDelayFactory; | ||
@@ -47,0 +49,0 @@ |
@@ -13,3 +13,3 @@ import { isRef, ref, computed, watch } from '@vue/composition-api'; | ||
const isSymbol = (val) => typeof val === "symbol"; | ||
const isBoolean = (val) => typeof val === 'boolean'; | ||
const isBoolean = (val) => typeof val === "boolean"; | ||
const isDate = (val) => isObject(val) && isFunction(val.getTime); | ||
@@ -22,2 +22,3 @@ const isNumber = (val) => typeof val === "number"; | ||
} | ||
const NO_OP = () => { }; | ||
function promisedTimeout(timeout) { | ||
@@ -370,2 +371,2 @@ return new Promise(res => { | ||
export { debounce, exponentialDelay, isArray, isBoolean, isDate, isElement, isFunction, isNumber, isObject, isPromise, isString, isSymbol, minMax, noDelay, promisedTimeout, unwrap, useArrayPagination, useCancellablePromise, useDebounce, usePagination, usePromise, useRetry, wrap }; | ||
export { NO_OP, debounce, exponentialDelay, isArray, isBoolean, isDate, isElement, isFunction, isNumber, isObject, isPromise, isString, isSymbol, minMax, noDelay, promisedTimeout, unwrap, useArrayPagination, useCancellablePromise, useDebounce, usePagination, usePromise, useRetry, wrap }; |
@@ -14,3 +14,3 @@ var VueComposableCore = (function (exports, compositionApi) { | ||
const isSymbol = (val) => typeof val === "symbol"; | ||
const isBoolean = (val) => typeof val === 'boolean'; | ||
const isBoolean = (val) => typeof val === "boolean"; | ||
const isDate = (val) => isObject(val) && isFunction(val.getTime); | ||
@@ -23,2 +23,3 @@ const isNumber = (val) => typeof val === "number"; | ||
} | ||
const NO_OP = () => { }; | ||
function promisedTimeout(timeout) { | ||
@@ -394,2 +395,3 @@ return new Promise(res => { | ||
exports.NO_OP = NO_OP; | ||
exports.debounce = debounce; | ||
@@ -396,0 +398,0 @@ exports.exponentialDelay = exponentialDelay; |
@@ -1,1 +0,1 @@ | ||
var VueComposableCore=function(e,t){"use strict";const r=Array.isArray,n=e=>"function"==typeof e,u=e=>"boolean"==typeof e,o=e=>null!==e&&"object"==typeof e;function a(e){return t.isRef(e)?e:t.ref(e)}const l=e=>"function"==typeof e,i=e=>c(e)&&l(e.getTime),s=e=>"number"==typeof e,c=e=>null!==e&&"object"==typeof e;function v(e){return c(e)&&l(e.then)&&l(e.catch)}function f(e){return new Promise(t=>{setTimeout(t,e)})}function y(e){const r=a(e.currentPage),n=a(e.pageSize),u=t.ref(0),o=a(e.total),l=t.computed({get:()=>u.value,set(e){"number"==typeof e&&(u.value=Math.min(e,o.value))}}),i=t.computed({get:()=>r.value,set(e){var t,n,u;"number"==typeof e&&(r.value=(t=e,n=1,u=c.value,t<n?n:t>u?u:t),l.value=(r.value-1)*s.value)}}),s=t.computed({get:()=>n.value,set(e){"number"==typeof e&&(n.value=e)}}),c=t.computed(()=>Math.ceil(o.value/s.value));i.value=r.value;return t.watch([o,s],()=>{i.value>c.value&&(i.value=c.value)},{lazy:!0}),{pageSize:s,total:o,currentPage:i,offset:l,lastPage:c,next:()=>++i.value,prev:()=>--i.value,first:()=>i.value=1,last:()=>i.value=c.value}}function m(e,r=!1){if(!e)throw new Error(`[usePromise] argument can't be '${e}'`);if("function"!=typeof e)throw new Error(`[usePromise] expects function, but received ${typeof e}`);const n=t.ref(!1),o=t.ref(null),a=t.ref(null),l=t.ref();return{exec:async(...t)=>{n.value=!0,o.value=null,a.value=null;let i=t&&e.length!==t.length&&t.length>0&&u(t[t.length-1])?t[t.length-1]:r;const s=l.value=e(...t);try{const e=await s;return l.value===s&&(a.value=e),e}catch(e){return l.value===s&&(o.value=e,a.value=null),i?s:void 0}finally{l.value===s&&(n.value=!1)}},result:a,promise:l,loading:n,error:o}}const p=Symbol(void 0),d=Symbol(void 0),g=async(e,t,r,n)=>{const u=t[p].value;let o=-1;const a=e.maxRetries||9001,l=e.retryDelay||h;t.retryErrors.value=[],t.isRetrying.value=!1,t.nextRetry.value=void 0;let c=void 0;do{let e=!1,y=null;try{if(++o,y=n?r(...n):r(),v(y)&&(y=await y),t[d].value)return null;e=!0}catch(e){y=null,t.retryErrors.value.push(e)}if(u!==t[p].value)return y;if(e)return t.isRetrying.value=!1,t.nextRetry.value=void 0,y;if(o>=a)return t.isRetrying.value=!1,t.nextRetry.value=void 0,Promise.reject(new Error(`[useRetry] max retries reached ${a}`));t.isRetrying.value=!0;const m=Date.now(),g=l(o),h=v(g)?await g:g;if(!v(g)||h){if(s(h))c=h;else{if(!i(h))throw new Error(`[useRetry] invalid value received from options.retryDelay '${typeof h}'`);c=h.getTime()}c<m?t.nextRetry.value=m+c:(t.nextRetry.value=c,c-=m),c>0&&await f(c)}if(t[d].value)return null;if(u!==t[p].value)return y}while(o<9e3);return null};const h=()=>0;function w(e,t=50,r={isImmediate:!1}){let n;return function(...u){const o=this,a=r.isImmediate&&void 0===n;void 0!==n&&clearTimeout(n),n=setTimeout((function(){n=void 0,r.isImmediate||e.apply(o,u)}),t),a&&e.apply(o,u)}}return e.debounce=w,e.exponentialDelay=e=>{const t=100*Math.pow(2,e);return t+.2*t*Math.random()},e.isArray=r,e.isBoolean=u,e.isDate=e=>o(e)&&n(e.getTime),e.isElement=e=>o(e)&&!!e.tagName,e.isFunction=n,e.isNumber=e=>"number"==typeof e,e.isObject=o,e.isPromise=function(e){return o(e)&&n(e.then)&&n(e.catch)},e.isString=e=>"string"==typeof e,e.isSymbol=e=>"symbol"==typeof e,e.minMax=function(e,t,r){return e<t?t:e>r?r:e},e.noDelay=h,e.promisedTimeout=function(e){return new Promise(t=>{setTimeout(t,e)})},e.unwrap=function(e){return t.isRef(e)?e.value:e},e.useArrayPagination=function(e,r){const n=a(e),u=y({currentPage:1,pageSize:10,...r,total:t.computed(()=>n.value.length)}),o=t.computed(()=>{const e=n.value;return Array.isArray(e)?e.slice(u.offset.value,u.offset.value+u.pageSize.value):[]});return{...u,result:o}},e.useCancellablePromise=function(e,r=!1){const n=t.ref(!1);let u=void 0;return{...m((...t)=>(e=>new Promise((t,r)=>{u=e=>{n.value=!0,r(e)},e.then(t).catch(r)}))(e(...t)),r),cancel:e=>u(e),cancelled:n}},e.useDebounce=function(e,t,r){return w(e,t,r)},e.usePagination=y,e.usePromise=m,e.useRetry=function(e,r){const n=!e||l(e)?{}:e,u=l(e)?e:r;if(!l(e)&&!c(e))throw new Error("[useRetry] options needs to be 'object'");if(u&&!l(u))throw new Error("[useRetry] factory needs to be 'function'");const o=t.ref(!1),a=t.ref(),i=t.ref([]),s={value:!1},v={isRetrying:o,retryCount:t.computed(()=>i.value.length),nextRetry:a,retryErrors:i,[p]:{value:0},[d]:s},f=u?(...e)=>(++v[p].value,g(n,v,u,e)):e=>(++v[p].value,g(n,v,e,void 0));return{...v,cancel:()=>{v.isRetrying.value=!1,v.retryErrors.value.push(new Error("[useRetry] cancelled")),v.nextRetry.value=void 0,s.value=!0},exec:f}},e.wrap=function(e){return t.isRef(e)?e:t.ref(e)},e}({},vueCompositionApi); | ||
var VueComposableCore=function(e,t){"use strict";const r=Array.isArray,n=e=>"function"==typeof e,u=e=>"boolean"==typeof e,o=e=>null!==e&&"object"==typeof e;function a(e){return t.isRef(e)?e:t.ref(e)}const l=e=>"function"==typeof e,i=e=>c(e)&&l(e.getTime),s=e=>"number"==typeof e,c=e=>null!==e&&"object"==typeof e;function v(e){return c(e)&&l(e.then)&&l(e.catch)}function f(e){return new Promise(t=>{setTimeout(t,e)})}function y(e){const r=a(e.currentPage),n=a(e.pageSize),u=t.ref(0),o=a(e.total),l=t.computed({get:()=>u.value,set(e){"number"==typeof e&&(u.value=Math.min(e,o.value))}}),i=t.computed({get:()=>r.value,set(e){var t,n,u;"number"==typeof e&&(r.value=(t=e,n=1,u=c.value,t<n?n:t>u?u:t),l.value=(r.value-1)*s.value)}}),s=t.computed({get:()=>n.value,set(e){"number"==typeof e&&(n.value=e)}}),c=t.computed(()=>Math.ceil(o.value/s.value));i.value=r.value;return t.watch([o,s],()=>{i.value>c.value&&(i.value=c.value)},{lazy:!0}),{pageSize:s,total:o,currentPage:i,offset:l,lastPage:c,next:()=>++i.value,prev:()=>--i.value,first:()=>i.value=1,last:()=>i.value=c.value}}function m(e,r=!1){if(!e)throw new Error(`[usePromise] argument can't be '${e}'`);if("function"!=typeof e)throw new Error(`[usePromise] expects function, but received ${typeof e}`);const n=t.ref(!1),o=t.ref(null),a=t.ref(null),l=t.ref();return{exec:async(...t)=>{n.value=!0,o.value=null,a.value=null;let i=t&&e.length!==t.length&&t.length>0&&u(t[t.length-1])?t[t.length-1]:r;const s=l.value=e(...t);try{const e=await s;return l.value===s&&(a.value=e),e}catch(e){return l.value===s&&(o.value=e,a.value=null),i?s:void 0}finally{l.value===s&&(n.value=!1)}},result:a,promise:l,loading:n,error:o}}const p=Symbol(void 0),d=Symbol(void 0),g=async(e,t,r,n)=>{const u=t[p].value;let o=-1;const a=e.maxRetries||9001,l=e.retryDelay||h;t.retryErrors.value=[],t.isRetrying.value=!1,t.nextRetry.value=void 0;let c=void 0;do{let e=!1,y=null;try{if(++o,y=n?r(...n):r(),v(y)&&(y=await y),t[d].value)return null;e=!0}catch(e){y=null,t.retryErrors.value.push(e)}if(u!==t[p].value)return y;if(e)return t.isRetrying.value=!1,t.nextRetry.value=void 0,y;if(o>=a)return t.isRetrying.value=!1,t.nextRetry.value=void 0,Promise.reject(new Error(`[useRetry] max retries reached ${a}`));t.isRetrying.value=!0;const m=Date.now(),g=l(o),h=v(g)?await g:g;if(!v(g)||h){if(s(h))c=h;else{if(!i(h))throw new Error(`[useRetry] invalid value received from options.retryDelay '${typeof h}'`);c=h.getTime()}c<m?t.nextRetry.value=m+c:(t.nextRetry.value=c,c-=m),c>0&&await f(c)}if(t[d].value)return null;if(u!==t[p].value)return y}while(o<9e3);return null};const h=()=>0;function w(e,t=50,r={isImmediate:!1}){let n;return function(...u){const o=this,a=r.isImmediate&&void 0===n;void 0!==n&&clearTimeout(n),n=setTimeout((function(){n=void 0,r.isImmediate||e.apply(o,u)}),t),a&&e.apply(o,u)}}return e.NO_OP=()=>{},e.debounce=w,e.exponentialDelay=e=>{const t=100*Math.pow(2,e);return t+.2*t*Math.random()},e.isArray=r,e.isBoolean=u,e.isDate=e=>o(e)&&n(e.getTime),e.isElement=e=>o(e)&&!!e.tagName,e.isFunction=n,e.isNumber=e=>"number"==typeof e,e.isObject=o,e.isPromise=function(e){return o(e)&&n(e.then)&&n(e.catch)},e.isString=e=>"string"==typeof e,e.isSymbol=e=>"symbol"==typeof e,e.minMax=function(e,t,r){return e<t?t:e>r?r:e},e.noDelay=h,e.promisedTimeout=function(e){return new Promise(t=>{setTimeout(t,e)})},e.unwrap=function(e){return t.isRef(e)?e.value:e},e.useArrayPagination=function(e,r){const n=a(e),u=y({currentPage:1,pageSize:10,...r,total:t.computed(()=>n.value.length)}),o=t.computed(()=>{const e=n.value;return Array.isArray(e)?e.slice(u.offset.value,u.offset.value+u.pageSize.value):[]});return{...u,result:o}},e.useCancellablePromise=function(e,r=!1){const n=t.ref(!1);let u=void 0;return{...m((...t)=>(e=>new Promise((t,r)=>{u=e=>{n.value=!0,r(e)},e.then(t).catch(r)}))(e(...t)),r),cancel:e=>u(e),cancelled:n}},e.useDebounce=function(e,t,r){return w(e,t,r)},e.usePagination=y,e.usePromise=m,e.useRetry=function(e,r){const n=!e||l(e)?{}:e,u=l(e)?e:r;if(!l(e)&&!c(e))throw new Error("[useRetry] options needs to be 'object'");if(u&&!l(u))throw new Error("[useRetry] factory needs to be 'function'");const o=t.ref(!1),a=t.ref(),i=t.ref([]),s={value:!1},v={isRetrying:o,retryCount:t.computed(()=>i.value.length),nextRetry:a,retryErrors:i,[p]:{value:0},[d]:s},f=u?(...e)=>(++v[p].value,g(n,v,u,e)):e=>(++v[p].value,g(n,v,e,void 0));return{...v,cancel:()=>{v.isRetrying.value=!1,v.retryErrors.value.push(new Error("[useRetry] cancelled")),v.nextRetry.value=void 0,s.value=!0},exec:f}},e.wrap=function(e){return t.isRef(e)?e:t.ref(e)},e}({},vueCompositionApi); |
@@ -0,0 +0,0 @@ 'use strict' |
{ | ||
"name": "@vue-composable/core", | ||
"version": "1.0.0-dev.3", | ||
"version": "1.0.0-dev.4", | ||
"description": "@vue-composable/core", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -0,0 +0,0 @@ # @vue-composable/core |
68819
1720