UNPKG

@hebilicious/vue-query-nuxt

Version:
20 lines (19 loc) 951 B
import { QueryClient, VueQueryPlugin, dehydrate, hydrate } from "@tanstack/vue-query"; import { getVueQueryOptions } from "./utils.mjs"; import { pluginHook } from "#build/internal.vue-query-plugin-hook"; import { defineNuxtPlugin, useRuntimeConfig, useState } from "#imports"; export default defineNuxtPlugin((nuxt) => { const { stateKey, queryClientOptions, vueQueryPluginOptions } = getVueQueryOptions(useRuntimeConfig()); const vueQueryState = useState(stateKey); const queryClient = new QueryClient(queryClientOptions); const { pluginReturn, vueQueryPluginOptions: hookOptions } = pluginHook({ queryClient, nuxt }); nuxt.vueApp.use(VueQueryPlugin, { queryClient, ...vueQueryPluginOptions, ...hookOptions }); if (process.server) { nuxt.hooks.hook("app:rendered", () => { vueQueryState.value = dehydrate(queryClient); }); } if (process.client) hydrate(queryClient, vueQueryState.value); return pluginReturn; });