import{g as V,M as j,au as h,s as E,av as R,as as F,p as H,aw as b,aa as z,ax as U,j as L,ay as G,_ as I,az as W,D as $,$ as q}from"./DYWyN9gj.js";import{c as J}from"./DQqQAlTY.js";const Q={trailing:!0};function X(a,e=25,l={}){if(l={...Q,...l},!Number.isFinite(e))throw new TypeError("Expected `wait` to be a finite number");let u,t,c=[],s,v;const _=(D,n)=>(s=Y(a,D,n),s.finally(()=>{if(s=null,l.trailing&&v&&!t){const y=_(D,v);return v=null,y}}),s);return function(...D){return s?(l.trailing&&(v=D),s):new Promise(n=>{const y=!t&&l.leading;clearTimeout(t),t=setTimeout(()=>{t=null;const f=l.leading?u:_(this,D);for(const m of c)m(f);c=[]},e),y?(u=_(this,D),n(u)):c.push(n)})}}async function Y(a,e,l){return await a.apply(e,l)}const Z=a=>a==="defer"||a===!1;function k(...a){var m;const e=typeof a[a.length-1]=="string"?a.pop():void 0;typeof a[0]!="string"&&typeof a[0]!="object"&&!(typeof a[0]=="function"&&typeof a[1]=="function")&&a.unshift(e);let[l,u,t={}]=a;const c=V(()=>F(l));if(typeof c.value!="string")throw new TypeError("[nuxt] [useAsyncData] key must be a string.");if(typeof u!="function")throw new TypeError("[nuxt] [useAsyncData] handler must be a function.");const s=j();t.server??(t.server=!0),t.default??(t.default=x),t.getCachedData??(t.getCachedData=N),t.lazy??(t.lazy=!1),t.immediate??(t.immediate=!0),t.deep??(t.deep=h.deep),t.dedupe??(t.dedupe="cancel"),t._functionName,s._asyncData[c.value];const v=t.getCachedData(c.value,s,{cause:"initial"});(m=s._asyncData[c.value])!=null&&m._init||(s._asyncData[c.value]=B(s,c.value,u,t,v));const _=s._asyncData[c.value];_._deps++;const D=()=>s._asyncData[c.value].execute({cause:"initial",dedupe:t.dedupe}),n=t.server!==!1&&s.payload.serverRendered;{let r=function(o){const d=s._asyncData[o];d!=null&&d._deps&&(d._deps--,d._deps===0&&(d==null||d._off()))};const i=I();if(i&&n&&t.immediate&&!i.sp&&(i.sp=[]),i&&!i._nuxtOnBeforeMountCbs){i._nuxtOnBeforeMountCbs=[];const o=i._nuxtOnBeforeMountCbs;W(()=>{o.forEach(d=>{d()}),o.splice(0,o.length)}),$(()=>o.splice(0,o.length))}const P=i&&(i._nuxtClientOnly||q(J,!1));n&&s.isHydrating&&(_.error.value||v!=null)?(_.pending.value=!1,_.status.value=_.error.value?"error":"success"):i&&!P&&(s.payload.serverRendered&&s.isHydrating||t.lazy)&&t.immediate?i._nuxtOnBeforeMountCbs.push(D):t.immediate&&D();const C=G();if(t.watch){const o=E(t.watch,()=>{_._execute({cause:"watch",dedupe:t.dedupe})},{flush:"post"});C&&R(()=>o())}const S=E(c,(o,d)=>{var w,O;const T=((w=s._asyncData[d])==null?void 0:w.data.value)!==h.value;d&&r(d),(O=s._asyncData[o])!=null&&O._init||(s._asyncData[o]=B(s,o,u,t,t.getCachedData(o,s,{cause:"initial"}))),s._asyncData[o]._deps++,(t.immediate||T)&&s._asyncData[o].execute({cause:"initial",dedupe:t.dedupe})},{flush:"sync"});C&&R(()=>{S(),r(c.value)})}const y={data:g(()=>{var r;return(r=s._asyncData[c.value])==null?void 0:r.data}),pending:g(()=>{var r;return(r=s._asyncData[c.value])==null?void 0:r.pending}),status:g(()=>{var r;return(r=s._asyncData[c.value])==null?void 0:r.status}),error:g(()=>{var r;return(r=s._asyncData[c.value])==null?void 0:r.error}),refresh:(...r)=>s._asyncData[c.value].execute(...r),execute:(...r)=>s._asyncData[c.value].execute(...r),clear:()=>M(s,c.value)},f=Promise.resolve(s._asyncDataPromises[c.value]).then(()=>y);return Object.assign(f,y),f}function g(a){return V({get(){var e;return(e=a())==null?void 0:e.value},set(e){const l=a();l&&(l.value=e)}})}function M(a,e){e in a.payload.data&&(a.payload.data[e]=void 0),e in a.payload._errors&&(a.payload._errors[e]=h.errorValue),a._asyncData[e]&&(a._asyncData[e].data.value=void 0,a._asyncData[e].error.value=h.errorValue,a._asyncData[e].pending.value=!1,a._asyncData[e].status.value="idle"),e in a._asyncDataPromises&&(a._asyncDataPromises[e]&&(a._asyncDataPromises[e].cancelled=!0),a._asyncDataPromises[e]=void 0)}function K(a,e){const l={};for(const u of e)l[u]=a[u];return l}function B(a,e,l,u,t){var y;(y=a.payload._errors)[e]??(y[e]=h.errorValue);const c=u.getCachedData!==N,s=l,v=u.deep?H:b,_=t!=null,D=a.hook("app:data:refresh",async f=>{(!f||f.includes(e))&&await n.execute({cause:"refresh:hook"})}),n={data:v(_?t:u.default()),pending:b(!_),error:z(a.payload._errors,e),status:b("idle"),execute:(f={})=>{if(a._asyncDataPromises[e]){if(Z(f.dedupe??u.dedupe))return a._asyncDataPromises[e];a._asyncDataPromises[e].cancelled=!0}if(f.cause==="initial"||a.isHydrating){const r=f.cause==="initial"?t:u.getCachedData(e,a,{cause:f.cause??"refresh:manual"});if(r!=null)return a.payload.data[e]=n.data.value=r,n.error.value=h.errorValue,n.status.value="success",Promise.resolve(r)}n.pending.value=!0,n.status.value="pending";const m=new Promise((r,i)=>{try{r(s(a))}catch(P){i(P)}}).then(async r=>{if(m.cancelled)return a._asyncDataPromises[e];let i=r;u.transform&&(i=await u.transform(r)),u.pick&&(i=K(i,u.pick)),a.payload.data[e]=i,n.data.value=i,n.error.value=h.errorValue,n.status.value="success"}).catch(r=>{if(m.cancelled)return a._asyncDataPromises[e];n.error.value=U(r),n.data.value=L(u.default()),n.status.value="error"}).finally(()=>{m.cancelled||(n.pending.value=!1,delete a._asyncDataPromises[e])});return a._asyncDataPromises[e]=m,a._asyncDataPromises[e]},_execute:X((...f)=>n.execute(...f),0,{leading:!0}),_default:u.default,_deps:0,_init:!0,_hash:void 0,_off:()=>{D(),n._init=!1,c||(M(a,e),n.execute=()=>Promise.resolve(),n.data.value=h.value)}};return n}const x=()=>h.value,N=(a,e,l)=>{if(e.isHydrating)return e.payload.data[a];if(l.cause!=="refresh:manual"&&l.cause!=="refresh:hook")return e.static.data[a]};export{k as u};
