chiyum-composable
Version:
a test npm package for vue3 composables
3 lines (2 loc) • 1.75 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue");function t(t=0,r={}){const{min:o=-1/0,max:a=1/0,step:n=1}=r,u=e.ref(t),c=e.computed(()=>2*u.value),s=e.computed(()=>u.value+n<=a),l=e.computed(()=>u.value-n>=o);return{count:u,doubleCount:c,increment:()=>{s.value&&(u.value+=n)},decrement:()=>{l.value&&(u.value-=n)},set:e=>{e>=o&&e<=a&&(u.value=e)},reset:()=>{u.value=t},canIncrement:s,canDecrement:l}}function r(t,r){const o=localStorage.getItem(t);let a;try{a=o?JSON.parse(o):r}catch{a=r}const n=e.ref(a);return e.watch(n,e=>{try{localStorage.setItem(t,JSON.stringify(e))}catch(r){console.error("Failed to save to localStorage:",r)}},{deep:!0}),[n,e=>{n.value=e}]}function o(t,r=300){const o=e.ref(t.value);let a;return e.watch(t,e=>{clearTimeout(a),a=setTimeout(()=>{o.value=e},r)}),o}function a(t){const r=e.ref(null),o=e.ref(null),a=e.ref(!1);return{data:r,error:o,loading:a,execute:async()=>{a.value=!0,o.value=null;try{const e=await fetch(t);if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const o=await e.json();r.value=o}catch(e){o.value=e instanceof Error?e.message:"An error occurred"}finally{a.value=!1}}}}const n="undefined"!=typeof window;const u={useCounter:t,useLocalStorage:r,useDebounce:o,useFetch:a};exports.composables=u,exports.isClient=n,exports.isLocalStorageSupported=()=>{if(!n)return!1;try{const e="__localStorage_test__";return localStorage.setItem(e,"test"),localStorage.removeItem(e),!0}catch{return!1}},exports.safeJsonParse=function(e,t){try{return JSON.parse(e)}catch{return t}},exports.toValue=function(t){return e.unref(t)},exports.useCounter=t,exports.useDebounce=o,exports.useFetch=a,exports.useLocalStorage=r;
//# sourceMappingURL=index.cjs.js.map