{"version":3,"file":"asyncData.b1854671.js","sources":["../../../../../../node_modules/nuxt/dist/app/composables/asyncData.mjs"],"sourcesContent":["import { onBeforeMount, onServerPrefetch, onUnmounted, ref, getCurrentInstance, watch, unref, toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.mjs\";\nimport { createError } from \"./error.mjs\";\nconst getDefault = () => null;\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 options.server = options.server ?? true;\n options.default = options.default ?? getDefault;\n options.lazy = options.lazy ?? false;\n options.immediate = options.immediate ?? true;\n const nuxt = useNuxtApp();\n const getCachedData = () => nuxt.isHydrating ? nuxt.payload.data[key] : nuxt.static.data[key];\n const hasCachedData = () => getCachedData() !== void 0;\n if (!nuxt._asyncData[key]) {\n nuxt._asyncData[key] = {\n data: ref(getCachedData() ?? options.default?.() ?? null),\n pending: ref(!hasCachedData()),\n error: ref(nuxt.payload._errors[key] ? createError(nuxt.payload._errors[key]) : null)\n };\n }\n const asyncData = { ...nuxt._asyncData[key] };\n asyncData.refresh = asyncData.execute = (opts = {}) => {\n if (nuxt._asyncDataPromises[key]) {\n if (opts.dedupe === false) {\n return nuxt._asyncDataPromises[key];\n }\n nuxt._asyncDataPromises[key].cancelled = true;\n }\n if (opts._initial && hasCachedData()) {\n return getCachedData();\n }\n asyncData.pending.value = true;\n const promise = new Promise(\n (resolve, reject) => {\n try {\n resolve(handler(nuxt));\n } catch (err) {\n reject(err);\n }\n }\n ).then((result) => {\n if (promise.cancelled) {\n return nuxt._asyncDataPromises[key];\n }\n if (options.transform) {\n result = options.transform(result);\n }\n if (options.pick) {\n result = pick(result, options.pick);\n }\n asyncData.data.value = result;\n asyncData.error.value = null;\n }).catch((error) => {\n if (promise.cancelled) {\n return nuxt._asyncDataPromises[key];\n }\n asyncData.error.value = error;\n asyncData.data.value = unref(options.default?.() ?? null);\n }).finally(() => {\n if (promise.cancelled) {\n return;\n }\n asyncData.pending.value = false;\n nuxt.payload.data[key] = asyncData.data.value;\n if (asyncData.error.value) {\n nuxt.payload._errors[key] = createError(asyncData.error.value);\n }\n delete nuxt._asyncDataPromises[key];\n });\n nuxt._asyncDataPromises[key] = promise;\n return nuxt._asyncDataPromises[key];\n };\n const initialFetch = () => asyncData.refresh({ _initial: true });\n const fetchOnServer = options.server !== false && nuxt.payload.serverRendered;\n if (process.server && fetchOnServer && options.immediate) {\n const promise = initialFetch();\n if (getCurrentInstance()) {\n onServerPrefetch(() => promise);\n } else {\n nuxt.hook(\"app:created\", () => promise);\n }\n }\n if (process.client) {\n const instance = getCurrentInstance();\n if (instance && !instance._nuxtOnBeforeMountCbs) {\n instance._nuxtOnBeforeMountCbs = [];\n const cbs = instance._nuxtOnBeforeMountCbs;\n if (instance) {\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 }\n if (fetchOnServer && nuxt.isHydrating && hasCachedData()) {\n asyncData.pending.value = false;\n } else if (instance && (nuxt.payload.serverRendered && nuxt.isHydrating || options.lazy) && options.immediate) {\n instance._nuxtOnBeforeMountCbs.push(initialFetch);\n } else if (options.immediate) {\n initialFetch();\n }\n if (options.watch) {\n watch(options.watch, () => asyncData.refresh());\n }\n const off = nuxt.hook(\"app:data:refresh\", (keys) => {\n if (!keys || keys.includes(key)) {\n return asyncData.refresh();\n }\n });\n if (instance) {\n onUnmounted(off);\n }\n }\n const asyncDataPromise = Promise.resolve(nuxt._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 return useAsyncData(key, handler, { ...options, lazy: true }, null);\n}\nexport function useNuxtData(key) {\n const nuxt = useNuxtApp();\n if (!(key in nuxt.payload.data)) {\n nuxt.payload.data[key] = null;\n }\n return {\n data: toRef(nuxt.payload.data, key)\n };\n}\nexport async function refreshNuxtData(keys) {\n if (process.server) {\n return Promise.resolve();\n }\n const _keys = keys ? Array.isArray(keys) ? keys : [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) : Array.isArray(keys) ? keys : [keys];\n for (const key of _keys) {\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] = void 0;\n }\n if (nuxtApp._asyncData[key]) {\n nuxtApp._asyncData[key].data.value = void 0;\n nuxtApp._asyncData[key].error.value = void 0;\n nuxtApp._asyncData[key].pending.value = false;\n }\n if (key in nuxtApp._asyncDataPromises) {\n nuxtApp._asyncDataPromises[key] = void 0;\n }\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":["getDefault","useAsyncData","args","autoKey","key","handler","options","nuxt","useNuxtApp","getCachedData","hasCachedData","ref","_a","createError","asyncData","opts","promise","resolve","reject","err","result","pick","error","unref","initialFetch","fetchOnServer","instance","getCurrentInstance","cbs","onBeforeMount","cb","onUnmounted","watch","off","keys","asyncDataPromise","obj","newObj"],"mappings":"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"}