vue-condition-watcher
Version:
Vue composition API for automatic data fetching. With conditions as the core. Easily control and sync to URL query string by conditions
1 lines • 20 kB
JavaScript
module.exports=function(e,n){"use strict";var t={};function __webpack_require__(n){if(t[n]){return t[n].exports}var r=t[n]={i:n,l:false,exports:{}};var i=true;try{e[n].call(r.exports,r,r.exports,__webpack_require__);i=false}finally{if(i)delete t[n]}r.l=true;return r.exports}__webpack_require__.ab=__dirname+"/";function startup(){return __webpack_require__(325)}return startup()}({35:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:true});n.useCache=void 0;var r=t(782);function useCache(e,n){var t=(0,r.serializeFunc)(e);function formatString(e){return"".concat(t,"@").concat((0,r.stringifyQuery)((0,r.sortObject)(e)))}return{set:function(e,t){return n.set(formatString(e),t)},get:function(e){return n.get(formatString(e))?n.get(formatString(e)):undefined},delete:function(e){return n.delete(formatString(e))},cached:function(e){return n.get(formatString(e))!==undefined}}}n.useCache=useCache},45:function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:true});n.isNoData=n.rAF=n.isServer=n.isObject=n.isNil=n.hasRequestAnimationFrame=n.isDocumentVisibility=n.hasDocument=n.hasWindow=n.containsProp=void 0;function containsProp(e){var t=[];for(var r=1;r<arguments.length;r++){t[r-1]=arguments[r]}if(!(0,n.isObject)(e))return false;return t.some(function(n){return n in e})}n.containsProp=containsProp;var t="undefined";var r=function(){return typeof window!=t};n.hasWindow=r;var i=function(){return typeof document!=t};n.hasDocument=i;var u=function(){return(0,n.hasDocument)()&&document.visibilityState==="visible"};n.isDocumentVisibility=u;var o=function(){return(0,n.hasWindow)()&&typeof window["requestAnimationFrame"]!=t};n.hasRequestAnimationFrame=o;var a=function(e){return e===null||e===undefined};n.isNil=a;var c=function(e){return e!==null&&typeof e==="object"};n.isObject=c;n.isServer=!(0,n.hasWindow)();var s=function(e){return(0,n.hasRequestAnimationFrame)()?window["requestAnimationFrame"](e):setTimeout(e,1)};n.rAF=s;var f=function(e){if(typeof e==="string"||Array.isArray(e)){return e.length===0}if([null,undefined].includes(e)){return false}if((0,n.isObject)(e)){return Object.keys.length===0}return!e};n.isNoData=f},103:function(e){e.exports=require("vue")},138:function(e,n,t){var r=t(103);Object.keys(r).forEach(function(e){n[e]=r[e]});n.set=function(e,n,t){if(Array.isArray(e)){e.length=Math.max(e.length,n);e.splice(n,1,t);return t}e[n]=t;return t};n.del=function(e,n){if(Array.isArray(e)){e.splice(n,1);return}delete e[n]};n.Vue=r;n.Vue2=undefined;n.isVue2=false;n.isVue3=true;n.install=function(){}},269:function(e,n,t){"use strict";var r=this&&this.__assign||function(){r=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++){n=arguments[t];for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i))e[i]=n[i]}return e};return r.apply(this,arguments)};var i=this&&this.__awaiter||function(e,n,t,r){function adopt(e){return e instanceof t?e:new t(function(n){n(e)})}return new(t||(t=Promise))(function(t,i){function fulfilled(e){try{step(r.next(e))}catch(e){i(e)}}function rejected(e){try{step(r["throw"](e))}catch(e){i(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((r=r.apply(e,n||[])).next())})};var u=this&&this.__generator||function(e,n){var t={label:0,sent:function(){if(u[0]&1)throw u[1];return u[1]},trys:[],ops:[]},r,i,u,o;return o={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function verb(e){return function(n){return step([e,n])}}function step(o){if(r)throw new TypeError("Generator is already executing.");while(t)try{if(r=1,i&&(u=o[0]&2?i["return"]:o[0]?i["throw"]||((u=i["return"])&&u.call(i),0):i.next)&&!(u=u.call(i,o[1])).done)return u;if(i=0,u)o=[o[0]&2,u.value];switch(o[0]){case 0:case 1:u=o;break;case 4:t.label++;return{value:o[1],done:false};case 5:t.label++;i=o[1];o=[0];continue;case 7:o=t.ops.pop();t.trys.pop();continue;default:if(!(u=t.trys,u=u.length>0&&u[u.length-1])&&(o[0]===6||o[0]===2)){t=0;continue}if(o[0]===3&&(!u||o[1]>u[0]&&o[1]<u[3])){t.label=o[1];break}if(o[0]===6&&t.label<u[1]){t.label=u[1];u=o;break}if(u&&t.label<u[2]){t.label=u[2];t.ops.push(o);break}if(u[2])t.ops.pop();t.trys.pop();continue}o=n.call(e,t)}catch(e){o=[6,e];i=0}finally{r=u=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}};Object.defineProperty(n,"__esModule",{value:true});var o=t(138);var a=t(45);var c=t(782);var s=t(487);var f=t(35);var l=t(349);var v=t(975);function useConditionWatcher(e){var n=this;function isFetchConfig(e){return(0,a.containsProp)(e,"fetcher","conditions","defaultParams","initialData","manual","immediate","history","pollingInterval","pollingWhenHidden","pollingWhenOffline","revalidateOnFocus","cacheProvider","beforeFetch","afterFetch","onFetchError")}function isHistoryOption(){if(!e.history||!e.history.sync)return false;return(0,a.containsProp)(e.history,"navigation","ignore","sync")}var t={fetcher:e.fetcher,conditions:e.conditions,immediate:true,manual:false,initialData:undefined,pollingInterval:(0,o.isRef)(e.pollingInterval)?e.pollingInterval:(0,o.ref)(e.pollingInterval||0),pollingWhenHidden:false,pollingWhenOffline:false,revalidateOnFocus:false,cacheProvider:function(){return new Map}};if(isFetchConfig(e)){t=r(r({},t),e)}var d=(0,f.useCache)(t.fetcher,t.cacheProvider());var h=(0,c.deepClone)(t.conditions);var y=(0,o.reactive)(t.conditions);var p=(0,o.ref)(false);var b=(0,o.ref)(true);var g=(0,o.ref)(true);var m=(0,o.shallowRef)(d.cached(h)?d.get(h):t.initialData||undefined);var w=(0,o.ref)(undefined);var E=(0,o.ref)({});var O=(0,o.ref)();var j=(0,v.usePromiseQueue)().enqueue;var _=(0,s.createEvents)(),P=_.conditionEvent,x=_.responseEvent,F=_.errorEvent,S=_.finallyEvent,C=_.reconnectEvent,A=_.focusEvent,q=_.visibilityEvent,k=_.stopFocusEvent,Q=_.stopReconnectEvent,D=_.stopVisibilityEvent;var R=function(e){Object.assign(y,(0,a.isObject)(e)&&!e.type?e:h)};var W=(0,o.computed)(function(){return!w.value&&!m.value});var L=function(r,o){if(o===void 0){o=false}return i(n,void 0,void 0,function(){var n,a,s,f,l,v,h,y;var b=this;return u(this,function(g){switch(g.label){case 0:n=typeof o==="boolean"?o:false;if(p.value)return[2];p.value=true;w.value=undefined;a=r;s={};f=(0,c.deepClone)(a);if(!(typeof t.beforeFetch==="function"))return[3,2];l=false;return[4,t.beforeFetch(f,function(){l=true})];case 1:s=g.sent();if(l){p.value=false;return[2,Promise.resolve(undefined)]}if(!s||typeof s!=="object"||s.constructor!==Object){p.value=false;throw new Error("[vue-condition-watcher]: beforeFetch should return an object")}g.label=2;case 2:v=Object.keys(s).length!==0;E.value=(0,c.filterNoneValueObject)(v?s:a);h=(0,c.createParams)(E.value,t.defaultParams);y=undefined;m.value=d.cached(E.value)?d.get(E.value):t.initialData||undefined;return[2,new Promise(function(r,o){e.fetcher(h).then(function(e){return i(b,void 0,void 0,function(){return u(this,function(n){switch(n.label){case 0:y=e;if(!(typeof t.afterFetch==="function"))return[3,2];return[4,t.afterFetch(e)];case 1:y=n.sent();n.label=2;case 2:if(y===undefined){console.warn('[vue-condition-watcher]: "afterFetch" return value is '.concat(y,". Please check it."))}if(!(0,c.isEquivalent)(m.value,y)){m.value=y}if(!(0,c.isEquivalent)(d.get(E.value),y)){d.set(E.value,y)}x.trigger(y);return[2,r(e)]}})})}).catch(function(e){return i(b,void 0,void 0,function(){var i;return u(this,function(u){switch(u.label){case 0:if(!(typeof t.onFetchError==="function"))return[3,2];return[4,t.onFetchError({data:undefined,error:e})];case 1:i=u.sent(),y=i.data,e=i.error;m.value=y||t.initialData;w.value=e;u.label=2;case 2:F.trigger(e);if(n){return[2,o(e)]}return[2,r(undefined)]}})})}).finally(function(){p.value=false;S.trigger()})})]}})})};var M=function(e){if(e===void 0){e=false}return j(function(){return L(r({},y),e)})};function execute(e){if(e===void 0){e=false}if((0,a.isNoData)(m.value)||a.isServer){M(e)}else{(0,a.rAF)(function(){return M(e)})}}if(!t.manual){(0,o.watchEffect)(function(e){if((0,o.unref)(t.pollingInterval)){O.value=function(){var e=null;function next(){var n=(0,o.unref)(t.pollingInterval);if(n&&e!==-1){e=setTimeout(nun,n)}}function nun(){if(!w.value&&(t.pollingWhenHidden||g.value)&&(t.pollingWhenOffline||b.value)){M().then(next)}else{next()}}next();return function(){return e&&clearTimeout(e)}}()}e(function(){O.value&&O.value()})})}var N=function(){var e=[];for(var n=0;n<arguments.length;n++){e[n]=arguments[n]}var t=e[0];if(t===undefined){return m.value}if(typeof t==="function"){m.value=t((0,c.deepClone)(m.value))}else{m.value=t}d.set(r({},y),m.value);return m.value};if(isHistoryOption()){var H={sync:e.history.sync,ignore:e.history.ignore||[],navigation:e.history.navigation||"push",listener:function(e){var n=Object.keys(e).length?e:h;(0,c.syncQuery2Conditions)(y,n,h)}};(0,l.useHistory)(E,H)}if(!t.manual&&t.immediate){execute()}(0,o.watch)(function(){return r({},y)},function(e,n){if((0,c.isEquivalent)(e,n))return;P.trigger((0,c.deepClone)(e),(0,c.deepClone)(n));!t.manual&&j(function(){return L(e)})});C.on(function(e){b.value=e});q.on(function(e){g.value=e});var I=A.on(function(){if(!g.value)return;execute()});if(!t.revalidateOnFocus){k();I.off()}(0,o.onUnmounted)(function(){O.value&&O.value();k();Q();D()});return{conditions:y,data:(0,o.readonly)(m),error:(0,o.readonly)(w),isFetching:(0,o.readonly)(p),loading:W,execute:execute,mutate:N,resetConditions:R,onConditionsChange:P.on,onFetchSuccess:x.on,onFetchError:F.on,onFetchFinally:S.on}}n.default=useConditionWatcher},325:function(e,n,t){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:true});n.useConditionWatcher=void 0;var i=t(269);Object.defineProperty(n,"useConditionWatcher",{enumerable:true,get:function(){return r(i).default}})},349:function(e,n,t){"use strict";var r=this&&this.__awaiter||function(e,n,t,r){function adopt(e){return e instanceof t?e:new t(function(n){n(e)})}return new(t||(t=Promise))(function(t,i){function fulfilled(e){try{step(r.next(e))}catch(e){i(e)}}function rejected(e){try{step(r["throw"](e))}catch(e){i(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((r=r.apply(e,n||[])).next())})};var i=this&&this.__generator||function(e,n){var t={label:0,sent:function(){if(u[0]&1)throw u[1];return u[1]},trys:[],ops:[]},r,i,u,o;return o={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function verb(e){return function(n){return step([e,n])}}function step(o){if(r)throw new TypeError("Generator is already executing.");while(t)try{if(r=1,i&&(u=o[0]&2?i["return"]:o[0]?i["throw"]||((u=i["return"])&&u.call(i),0):i.next)&&!(u=u.call(i,o[1])).done)return u;if(i=0,u)o=[o[0]&2,u.value];switch(o[0]){case 0:case 1:u=o;break;case 4:t.label++;return{value:o[1],done:false};case 5:t.label++;i=o[1];o=[0];continue;case 7:o=t.ops.pop();t.trys.pop();continue;default:if(!(u=t.trys,u=u.length>0&&u[u.length-1])&&(o[0]===6||o[0]===2)){t=0;continue}if(o[0]===3&&(!u||o[1]>u[0]&&o[1]<u[3])){t.label=o[1];break}if(o[0]===6&&t.label<u[1]){t.label=u[1];u=o;break}if(u&&t.label<u[2]){t.label=u[2];t.ops.push(o);break}if(u[2])t.ops.pop();t.trys.pop();continue}o=n.call(e,t)}catch(e){o=[6,e];i=0}finally{r=u=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}};var u=this&&this.__read||function(e,n){var t=typeof Symbol==="function"&&e[Symbol.iterator];if(!t)return e;var r=t.call(e),i,u=[],o;try{while((n===void 0||n-- >0)&&!(i=r.next()).done)u.push(i.value)}catch(e){o={error:e}}finally{try{if(i&&!i.done&&(t=r["return"]))t.call(r)}finally{if(o)throw o.error}}return u};Object.defineProperty(n,"__esModule",{value:true});n.useHistory=void 0;var o=t(138);var a=t(782);function decode(e){try{return decodeURIComponent(""+e)}catch(n){console.error('Error decoding "'.concat(e,'".'))}return""+e}function parseQuery(e){var n={};if(e===""||e==="?")return n;var t=e[0]==="?";var r=(t?e.slice(1):e).split("&");for(var i=0;i<r.length;++i){var o=u(r[i].split("="),2),a=o[0],c=o[1];a=decode(a);var s=c==null?null:decode(c);if(a in n){var f=n[a];if(!Array.isArray(f)){f=n[a]=[f]}f.push(s)}else{n[a]=s}}return n}function useHistory(e,n){var t=this;function createQuery(){var e=window.location.href.split("?");var t=e.length===1?"":"?"+e[1];n.listener(parseQuery(t))}(0,o.watch)(e,function(){return r(t,void 0,void 0,function(){var t,r,u;return i(this,function(i){t=n.sync.currentRoute.value?n.sync.currentRoute.value.path:n.sync.currentRoute.path;r=(0,a.stringifyQuery)(e.value,n.ignore);u=t+"?"+r;try{n.navigation==="replace"?n.sync.replace(u):n.sync.push(u)}catch(e){throw new Error("[vue-condition-watcher]: history.sync is not instance of vue-router. Please check.")}return[2]})})},{deep:true});createQuery();(0,o.onMounted)(function(){window.addEventListener("popstate",createQuery)});(0,o.onUnmounted)(function(){window.removeEventListener("popstate",createQuery)})}n.useHistory=useHistory},487:function(e,n,t){"use strict";var r=this&&this.__read||function(e,n){var t=typeof Symbol==="function"&&e[Symbol.iterator];if(!t)return e;var r=t.call(e),i,u=[],o;try{while((n===void 0||n-- >0)&&!(i=r.next()).done)u.push(i.value)}catch(e){o={error:e}}finally{try{if(i&&!i.done&&(t=r["return"]))t.call(r)}finally{if(o)throw o.error}}return u};var i=this&&this.__spreadArray||function(e,n,t){if(t||arguments.length===2)for(var r=0,i=n.length,u;r<i;r++){if(u||!(r in n)){if(!u)u=Array.prototype.slice.call(n,0,r);u[r]=n[r]}}return e.concat(u||Array.prototype.slice.call(n))};Object.defineProperty(n,"__esModule",{value:true});n.createEvents=void 0;var u=t(45);function useSubscribe(){var e=[];var n=function(n){var t=e.indexOf(n);if(t!==-1)e.splice(t,1)};var t=function(t){e.push(t);return{off:function(){return n(t)}}};var u=function(){var n=[];for(var t=0;t<arguments.length;t++){n[t]=arguments[t]}e.forEach(function(e){return e.apply(void 0,i([],r(n),false))})};return{on:t,trigger:u}}var o=true;var a=(0,u.hasWindow)();var c=(0,u.hasDocument)();function createFocusEvent(e){if(a&&window.addEventListener){window.addEventListener("focus",e.trigger)}return function(){window.removeEventListener("focus",e.trigger)}}function createVisibilityEvent(e){if(c&&document.addEventListener){document.addEventListener("visibilitychange",function(){return e.trigger((0,u.isDocumentVisibility)())})}return function(){document.removeEventListener("visibilitychange",function(){return e.trigger((0,u.isDocumentVisibility)())})}}function createReconnectEvent(e){var n=function(){o=true;e.trigger(o)};var t=function(){o=false;e.trigger(o)};if(a&&window.addEventListener){window.addEventListener("online",n);window.addEventListener("offline",t)}return function(){window.removeEventListener("online",n);window.removeEventListener("offline",t)}}function createEvents(){var e=useSubscribe();var n=useSubscribe();var t=useSubscribe();var r=useSubscribe();var i=useSubscribe();var u=useSubscribe();var o=useSubscribe();var a=createFocusEvent(i);var c=createVisibilityEvent(u);var s=createReconnectEvent(o);return{conditionEvent:e,responseEvent:n,errorEvent:t,finallyEvent:r,focusEvent:i,reconnectEvent:o,visibilityEvent:u,stopFocusEvent:a,stopReconnectEvent:s,stopVisibilityEvent:c}}n.createEvents=createEvents},782:function(e,n){"use strict";var t=this&&this.__assign||function(){t=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++){n=arguments[t];for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i))e[i]=n[i]}return e};return t.apply(this,arguments)};var r=this&&this.__read||function(e,n){var t=typeof Symbol==="function"&&e[Symbol.iterator];if(!t)return e;var r=t.call(e),i,u=[],o;try{while((n===void 0||n-- >0)&&!(i=r.next()).done)u.push(i.value)}catch(e){o={error:e}}finally{try{if(i&&!i.done&&(t=r["return"]))t.call(r)}finally{if(o)throw o.error}}return u};Object.defineProperty(n,"__esModule",{value:true});n.serializeFunc=n.sortObject=n.deepClone=n.isEquivalent=n.isEquivalentString=n.syncQuery2Conditions=n.typeOf=n.stringifyQuery=n.filterNoneValueObject=n.createParams=void 0;var i=function(e){return Object.fromEntries?Object.fromEntries(e):e.reduce(function(e,n){var i;var u=r(n,2),o=u[0],a=u[1];return t(t({},e),(i={},i[o]=a,i))},{})};function createParams(e,n){var i=t(t({},e),n);Object.entries(i).forEach(function(e){var n=r(e,2),t=n[0],u=n[1];if(Array.isArray(u)){i[t]=u.join(",")}});return i}n.createParams=createParams;function filterNoneValueObject(e){return i(Object.entries(e).filter(function(e){var n=e[1];return typeof n!=="undefined"&&n!==null&&n!==""&&n.length!==0}))}n.filterNoneValueObject=filterNoneValueObject;function stringifyQuery(e,n){var t=encodeURIComponent;return Object.entries(e).filter(function(e){var t=r(e,2),i=t[0],u=t[1];return typeof u!=="undefined"&&u!==null&&u!==""&&(Array.isArray(u)?u.length!==0:true)&&(n&&n.length?!n.includes(i):true)}).map(function(e){var n=r(e,2),i=n[0],u=n[1];return t(i)+(u!=null?"="+t(u):"")}).join("&")}n.stringifyQuery=stringifyQuery;function typeOf(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}n.typeOf=typeOf;function syncQuery2Conditions(e,n,r){var i=t({},e);var u=Object.keys(n).length===0;Object.keys(i).forEach(function(t){if(t in n||u){var o=typeOf(i[t]);switch(o){case"date":e[t]=u?"":new Date(n[t]);break;case"array":e[t]=u||!n[t].length?[]:typeOf(n[t])==="string"?n[t].split(","):n[t];if(r[t].length&&e[t].length){var a=typeOf(r[t][0]);e[t]=e[t].map(function(e){switch(a){case"number":return Number(e);case"date":return new Date(e);case"boolean":return e==="true";default:return String(e)}})}break;case"string":e[t]=u?"":String(n[t]);break;case"number":e[t]=u?0:Number(n[t]);break;case"boolean":e[t]=u?"":Boolean(n[t]);break;default:e[t]=u?"":n[t];break}}})}n.syncQuery2Conditions=syncQuery2Conditions;function isEquivalentString(e,n,t){return stringifyQuery(e,t)===stringifyQuery(n,t)}n.isEquivalentString=isEquivalentString;function isEquivalent(e,n){if(e===null||e===undefined||n===null||n===undefined){return e===n}if(e.constructor!==n.constructor){return false}if(e instanceof Function){return e===n}if(e instanceof RegExp){return e===n}if(e===n||e.valueOf()===n.valueOf()){return true}if(Array.isArray(e)&&e.length!==n.length){return false}if(e instanceof Date){return false}if(!(e instanceof Object)){return false}if(!(n instanceof Object)){return false}var t=Object.keys(e);return Object.keys(n).every(function(e){return t.indexOf(e)!==-1})&&t.every(function(t){return isEquivalent(e[t],n[t])})}n.isEquivalent=isEquivalent;function deepClone(e){if(e===null)return null;var n=Object.assign({},e);Object.keys(n).forEach(function(t){if(e[t]instanceof Date){var r=e[t];n[t]=new Date(r);return}n[t]=typeof e[t]==="object"?deepClone(e[t]):e[t]});return Array.isArray(e)&&e.length?(n.length=e.length)&&Array.from(n):Array.isArray(e)?Array.from(e):n}n.deepClone=deepClone;function sortObject(e){return Object.keys(e).sort().reduce(function(n,t){n[t]=e[t];return n},{})}n.sortObject=sortObject;function serializeFunc(e){var n=e.toString();if(/function.*?\(/.test(n)){return n}if(/.*?=>.*?/.test(n)){return n}var t=n.indexOf("(");var r=n.substr(0,t).trim().split(" ").filter(function(e){return e.length>0});var i=r.filter(function(e){return["*","async"].indexOf(e)===-1});if(i.length>0){return(r.indexOf("async")>-1?"async ":"")+"function"+(r.join("").indexOf("*")>-1?"*":"")+n.substr(t)}return n}n.serializeFunc=serializeFunc},975:function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:true});n.usePromiseQueue=void 0;function usePromiseQueue(){var e=[];var n=false;function enqueue(n){return new Promise(function(t,r){e.push({promise:n,resolve:t,reject:r});dequeue()})}function dequeue(){if(n){return false}var t=e.shift();if(!t){return false}try{n=true;t.promise().then(function(e){n=false;t.resolve(e);dequeue()}).catch(function(e){n=false;t.reject(e);dequeue()})}catch(e){n=false;t.reject(e);dequeue()}return true}return{enqueue:enqueue,dequeue:dequeue}}n.usePromiseQueue=usePromiseQueue}});