{"version":3,"file":"eErVGkIX.js","sources":["../../../../node_modules/nuxt/dist/app/composables/asyncData.js"],"sourcesContent":["import { computed, getCurrentInstance, getCurrentScope, onBeforeMount, onScopeDispose, onServerPrefetch, onUnmounted, ref, shallowRef, toRef, unref, watch } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { toArray } from \"../utils.js\";\nimport { createError } from \"./error.js\";\nimport { onNuxtReady } from \"./ready.js\";\nimport { asyncDataDefaults } from \"#build/nuxt.config.mjs\";\nconst isDefer = (dedupe) => dedupe === \"defer\" || dedupe === false;\nexport function useAsyncData(...args) {\n const autoKey = typeof args[args.length - 1] === \"string\" ? args.pop() : void 0;\n if (typeof args[0] !== \"string\") {\n args.unshift(autoKey);\n }\n let [key, _handler, options = {}] = args;\n if (typeof key !== \"string\") {\n throw new TypeError(\"[nuxt] [asyncData] key must be a string.\");\n }\n if (typeof _handler !== \"function\") {\n throw new TypeError(\"[nuxt] [asyncData] handler must be a function.\");\n }\n const nuxtApp = useNuxtApp();\n const handler = import.meta.client || !import.meta.prerender || !nuxtApp.ssrContext?._sharedPrerenderCache ? _handler : () => {\n const value = nuxtApp.ssrContext._sharedPrerenderCache.get(key);\n if (value) {\n return value;\n }\n const promise = nuxtApp.runWithContext(_handler);\n nuxtApp.ssrContext._sharedPrerenderCache.set(key, promise);\n return promise;\n };\n const getDefault = () => null;\n const getDefaultCachedData = () => nuxtApp.isHydrating ? nuxtApp.payload.data[key] : nuxtApp.static.data[key];\n options.server = options.server ?? true;\n options.default = options.default ?? getDefault;\n options.getCachedData = options.getCachedData ?? getDefaultCachedData;\n options.lazy = options.lazy ?? false;\n options.immediate = options.immediate ?? true;\n options.deep = options.deep ?? asyncDataDefaults.deep;\n options.dedupe = options.dedupe ?? \"cancel\";\n if (import.meta.dev && typeof options.dedupe === \"boolean\") {\n console.warn(\"[nuxt] `boolean` values are deprecated for the `dedupe` option of `useAsyncData` and will be removed in the future. Use 'cancel' or 'defer' instead.\");\n }\n const hasCachedData = () => options.getCachedData(key, nuxtApp) != null;\n if (!nuxtApp._asyncData[key] || !options.immediate) {\n nuxtApp.payload._errors[key] ??= null;\n const _ref = options.deep ? ref : shallowRef;\n nuxtApp._asyncData[key] = {\n data: _ref(options.getCachedData(key, nuxtApp) ?? options.default()),\n pending: ref(!hasCachedData()),\n error: toRef(nuxtApp.payload._errors, key),\n status: ref(\"idle\")\n };\n }\n const asyncData = { ...nuxtApp._asyncData[key] };\n asyncData.refresh = asyncData.execute = (opts = {}) => {\n if (nuxtApp._asyncDataPromises[key]) {\n if (isDefer(opts.dedupe ?? options.dedupe)) {\n return nuxtApp._asyncDataPromises[key];\n }\n nuxtApp._asyncDataPromises[key].cancelled = true;\n }\n if ((opts._initial || nuxtApp.isHydrating && opts._initial !== false) && hasCachedData()) {\n return Promise.resolve(options.getCachedData(key, nuxtApp));\n }\n asyncData.pending.value = true;\n asyncData.status.value = \"pending\";\n const promise = new Promise(\n (resolve, reject) => {\n try {\n resolve(handler(nuxtApp));\n } catch (err) {\n reject(err);\n }\n }\n ).then(async (_result) => {\n if (promise.cancelled) {\n return nuxtApp._asyncDataPromises[key];\n }\n let result = _result;\n if (options.transform) {\n result = await options.transform(_result);\n }\n if (options.pick) {\n result = pick(result, options.pick);\n }\n nuxtApp.payload.data[key] = result;\n asyncData.data.value = result;\n asyncData.error.value = null;\n asyncData.status.value = \"success\";\n }).catch((error) => {\n if (promise.cancelled) {\n return nuxtApp._asyncDataPromises[key];\n }\n asyncData.error.value = createError(error);\n asyncData.data.value = unref(options.default());\n asyncData.status.value = \"error\";\n }).finally(() => {\n if (promise.cancelled) {\n return;\n }\n asyncData.pending.value = false;\n delete nuxtApp._asyncDataPromises[key];\n });\n nuxtApp._asyncDataPromises[key] = promise;\n return nuxtApp._asyncDataPromises[key];\n };\n asyncData.clear = () => clearNuxtDataByKey(nuxtApp, key);\n const initialFetch = () => asyncData.refresh({ _initial: true });\n const fetchOnServer = options.server !== false && nuxtApp.payload.serverRendered;\n if (import.meta.server && fetchOnServer && options.immediate) {\n const promise = initialFetch();\n if (getCurrentInstance()) {\n onServerPrefetch(() => promise);\n } else {\n nuxtApp.hook(\"app:created\", async () => {\n await promise;\n });\n }\n }\n if (import.meta.client) {\n const instance = getCurrentInstance();\n if (import.meta.dev && !nuxtApp.isHydrating && (!instance || instance?.isMounted)) {\n console.warn(`[nuxt] [${options._functionName || \"useAsyncData\"}] Component is already mounted, please use $fetch instead. See https://nuxt.com/docs/getting-started/data-fetching`);\n }\n if (instance && !instance._nuxtOnBeforeMountCbs) {\n instance._nuxtOnBeforeMountCbs = [];\n const cbs = instance._nuxtOnBeforeMountCbs;\n onBeforeMount(() => {\n cbs.forEach((cb) => {\n cb();\n });\n cbs.splice(0, cbs.length);\n });\n onUnmounted(() => cbs.splice(0, cbs.length));\n }\n if (fetchOnServer && nuxtApp.isHydrating && (asyncData.error.value || hasCachedData())) {\n asyncData.pending.value = false;\n asyncData.status.value = asyncData.error.value ? \"error\" : \"success\";\n } else if (instance && (nuxtApp.payload.serverRendered && nuxtApp.isHydrating || options.lazy) && options.immediate) {\n instance._nuxtOnBeforeMountCbs.push(initialFetch);\n } else if (options.immediate) {\n initialFetch();\n }\n const hasScope = getCurrentScope();\n if (options.watch) {\n const unsub = watch(options.watch, () => asyncData.refresh());\n if (hasScope) {\n onScopeDispose(unsub);\n }\n }\n const off = nuxtApp.hook(\"app:data:refresh\", async (keys) => {\n if (!keys || keys.includes(key)) {\n await asyncData.refresh();\n }\n });\n if (hasScope) {\n onScopeDispose(off);\n }\n }\n const asyncDataPromise = Promise.resolve(nuxtApp._asyncDataPromises[key]).then(() => asyncData);\n Object.assign(asyncDataPromise, asyncData);\n return asyncDataPromise;\n}\nexport function useLazyAsyncData(...args) {\n const autoKey = typeof args[args.length - 1] === \"string\" ? args.pop() : void 0;\n if (typeof args[0] !== \"string\") {\n args.unshift(autoKey);\n }\n const [key, handler, options = {}] = args;\n if (import.meta.dev && import.meta.client) {\n options._functionName ||= \"useLazyAsyncData\";\n }\n return useAsyncData(key, handler, { ...options, lazy: true }, null);\n}\nexport function useNuxtData(key) {\n const nuxtApp = useNuxtApp();\n if (!(key in nuxtApp.payload.data)) {\n nuxtApp.payload.data[key] = null;\n }\n return {\n data: computed({\n get() {\n return nuxtApp._asyncData[key]?.data.value ?? nuxtApp.payload.data[key];\n },\n set(value) {\n if (nuxtApp._asyncData[key]) {\n nuxtApp._asyncData[key].data.value = value;\n } else {\n nuxtApp.payload.data[key] = value;\n }\n }\n })\n };\n}\nexport async function refreshNuxtData(keys) {\n if (import.meta.server) {\n return Promise.resolve();\n }\n await new Promise((resolve) => onNuxtReady(resolve));\n const _keys = keys ? toArray(keys) : void 0;\n await useNuxtApp().hooks.callHookParallel(\"app:data:refresh\", _keys);\n}\nexport function clearNuxtData(keys) {\n const nuxtApp = useNuxtApp();\n const _allKeys = Object.keys(nuxtApp.payload.data);\n const _keys = !keys ? _allKeys : typeof keys === \"function\" ? _allKeys.filter(keys) : toArray(keys);\n for (const key of _keys) {\n clearNuxtDataByKey(nuxtApp, key);\n }\n}\nfunction clearNuxtDataByKey(nuxtApp, key) {\n if (key in nuxtApp.payload.data) {\n nuxtApp.payload.data[key] = void 0;\n }\n if (key in nuxtApp.payload._errors) {\n nuxtApp.payload._errors[key] = null;\n }\n if (nuxtApp._asyncData[key]) {\n nuxtApp._asyncData[key].data.value = void 0;\n nuxtApp._asyncData[key].error.value = null;\n nuxtApp._asyncData[key].pending.value = false;\n nuxtApp._asyncData[key].status.value = \"idle\";\n }\n if (key in nuxtApp._asyncDataPromises) {\n nuxtApp._asyncDataPromises[key].cancelled = true;\n nuxtApp._asyncDataPromises[key] = void 0;\n }\n}\nfunction pick(obj, keys) {\n const newObj = {};\n for (const key of keys) {\n newObj[key] = obj[key];\n }\n return newObj;\n}\n"],"names":["isDefer","dedupe","useAsyncData","args","autoKey","key","_handler","options","nuxtApp","useNuxtApp","handler","getDefault","getDefaultCachedData","asyncDataDefaults","hasCachedData","_a","_ref","ref","shallowRef","toRef","asyncData","opts","promise","resolve","reject","err","_result","result","pick","error","createError","unref","clearNuxtDataByKey","initialFetch","fetchOnServer","instance","getCurrentInstance","cbs","onBeforeMount","cb","onUnmounted","hasScope","getCurrentScope","unsub","watch","onScopeDispose","off","keys","asyncDataPromise","obj","newObj"],"mappings":"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","x_google_ignoreList":[0]}