@tanstack/vue-query 4.16.1 → 4.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/build/lib/__mocks__/useBaseQuery.d.ts +1 -0
  2. package/build/lib/devtools/devtools.esm.js +1 -1
  3. package/build/lib/devtools/devtools.esm.js.map +1 -1
  4. package/build/lib/devtools/devtools.js +1 -1
  5. package/build/lib/devtools/devtools.js.map +1 -1
  6. package/build/lib/devtools/devtools.mjs +1 -1
  7. package/build/lib/devtools/devtools.mjs.map +1 -1
  8. package/build/lib/index.d.ts +2 -3
  9. package/build/lib/index.js +4 -4
  10. package/build/lib/queryClient.d.ts +1 -0
  11. package/build/lib/queryClient.esm.js +2 -0
  12. package/build/lib/queryClient.esm.js.map +1 -1
  13. package/build/lib/queryClient.js +2 -0
  14. package/build/lib/queryClient.js.map +1 -1
  15. package/build/lib/queryClient.mjs +2 -0
  16. package/build/lib/queryClient.mjs.map +1 -1
  17. package/build/lib/useBaseQuery.d.ts +4 -2
  18. package/build/lib/useBaseQuery.esm.js +55 -42
  19. package/build/lib/useBaseQuery.esm.js.map +1 -1
  20. package/build/lib/useBaseQuery.js +54 -40
  21. package/build/lib/useBaseQuery.js.map +1 -1
  22. package/build/lib/useBaseQuery.mjs +55 -42
  23. package/build/lib/useBaseQuery.mjs.map +1 -1
  24. package/build/lib/useInfiniteQuery.d.ts +1 -1
  25. package/build/lib/useInfiniteQuery.esm.js.map +1 -1
  26. package/build/lib/useInfiniteQuery.js.map +1 -1
  27. package/build/lib/useInfiniteQuery.mjs.map +1 -1
  28. package/build/lib/useIsFetching.d.ts +3 -3
  29. package/build/lib/useIsFetching.esm.js +10 -9
  30. package/build/lib/useIsFetching.esm.js.map +1 -1
  31. package/build/lib/useIsFetching.js +9 -8
  32. package/build/lib/useIsFetching.js.map +1 -1
  33. package/build/lib/useIsFetching.mjs +10 -9
  34. package/build/lib/useIsFetching.mjs.map +1 -1
  35. package/build/lib/useIsMutating.d.ts +3 -3
  36. package/build/lib/useIsMutating.esm.js +12 -11
  37. package/build/lib/useIsMutating.esm.js.map +1 -1
  38. package/build/lib/useIsMutating.js +11 -10
  39. package/build/lib/useIsMutating.js.map +1 -1
  40. package/build/lib/useIsMutating.mjs +12 -11
  41. package/build/lib/useIsMutating.mjs.map +1 -1
  42. package/build/lib/useQueries.esm.js +28 -18
  43. package/build/lib/useQueries.esm.js.map +1 -1
  44. package/build/lib/useQueries.js +27 -17
  45. package/build/lib/useQueries.js.map +1 -1
  46. package/build/lib/useQueries.mjs +28 -18
  47. package/build/lib/useQueries.mjs.map +1 -1
  48. package/build/lib/useQuery.d.ts +2 -3
  49. package/build/lib/useQuery.esm.js.map +1 -1
  50. package/build/lib/useQuery.js.map +1 -1
  51. package/build/lib/useQuery.mjs.map +1 -1
  52. package/build/lib/vueQueryPlugin.d.ts +7 -9
  53. package/build/lib/vueQueryPlugin.esm.js +13 -0
  54. package/build/lib/vueQueryPlugin.esm.js.map +1 -1
  55. package/build/lib/vueQueryPlugin.js +13 -0
  56. package/build/lib/vueQueryPlugin.js.map +1 -1
  57. package/build/lib/vueQueryPlugin.mjs +13 -0
  58. package/build/lib/vueQueryPlugin.mjs.map +1 -1
  59. package/build/umd/index.development.js +132 -93
  60. package/build/umd/index.development.js.map +1 -1
  61. package/build/umd/index.production.js +1 -1
  62. package/build/umd/index.production.js.map +1 -1
  63. package/package.json +8 -4
@@ -1 +1 @@
1
- {"version":3,"file":"useQuery.mjs","sources":["../../src/useQuery.ts"],"sourcesContent":["import type { ToRefs, UnwrapRef } from 'vue-demi'\nimport { QueryObserver } from '@tanstack/query-core'\nimport type {\n QueryFunction,\n QueryKey,\n QueryObserverResult,\n DefinedQueryObserverResult,\n} from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport type { UseQueryReturnType as UQRT } from './useBaseQuery'\nimport type { WithQueryClientKey, VueQueryObserverOptions } from './types'\n\ntype UseQueryReturnType<TData, TError> = Omit<\n UQRT<TData, TError>,\n 'refetch' | 'remove'\n> & {\n refetch: QueryObserverResult<TData, TError>['refetch']\n remove: QueryObserverResult<TData, TError>['remove']\n}\n\ntype UseQueryDefinedReturnType<TData, TError> = Omit<\n ToRefs<Readonly<DefinedQueryObserverResult<TData, TError>>>,\n 'refetch' | 'remove'\n> & {\n suspense: () => Promise<QueryObserverResult<TData, TError>>\n refetch: QueryObserverResult<TData, TError>['refetch']\n remove: QueryObserverResult<TData, TError>['remove']\n}\n\nexport type UseQueryOptions<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = WithQueryClientKey<\n VueQueryObserverOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>\n>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey'\n >,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn' | 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn' | 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn'\n >,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n arg1: TQueryKey | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg2?:\n | QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg3?: UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n):\n | UseQueryReturnType<TData, TError>\n | UseQueryDefinedReturnType<TData, TError> {\n const result = useBaseQuery(QueryObserver, arg1, arg2, arg3)\n\n return {\n ...result,\n refetch: result.refetch.value,\n remove: result.remove.value,\n }\n}\n"],"names":["useQuery","arg1","arg2","arg3","result","useBaseQuery","QueryObserver","refetch","value","remove"],"mappings":";;;AAwJO,SAASA,QAAT,CAMLC,IANK,EAOLC,IAPK,EAULC,IAVK,EAasC;EAC3C,MAAMC,MAAM,GAAGC,YAAY,CAACC,aAAD,EAAgBL,IAAhB,EAAsBC,IAAtB,EAA4BC,IAA5B,CAA3B,CAAA;EAEA,OAAO,EACL,GAAGC,MADE;AAELG,IAAAA,OAAO,EAAEH,MAAM,CAACG,OAAP,CAAeC,KAFnB;AAGLC,IAAAA,MAAM,EAAEL,MAAM,CAACK,MAAP,CAAcD,KAAAA;GAHxB,CAAA;AAKD;;;;"}
1
+ {"version":3,"file":"useQuery.mjs","sources":["../../src/useQuery.ts"],"sourcesContent":["import type { ToRefs, UnwrapRef } from 'vue-demi'\nimport { QueryObserver } from '@tanstack/query-core'\nimport type {\n QueryFunction,\n QueryKey,\n QueryObserverResult,\n DefinedQueryObserverResult,\n} from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport type { UseQueryReturnType as UQRT } from './useBaseQuery'\nimport type { WithQueryClientKey, VueQueryObserverOptions } from './types'\n\nexport type UseQueryReturnType<TData, TError> = Omit<\n UQRT<TData, TError>,\n 'refetch' | 'remove'\n> & {\n refetch: QueryObserverResult<TData, TError>['refetch']\n remove: QueryObserverResult<TData, TError>['remove']\n}\n\nexport type UseQueryDefinedReturnType<TData, TError> = Omit<\n ToRefs<Readonly<DefinedQueryObserverResult<TData, TError>>>,\n 'refetch' | 'remove'\n> & {\n suspense: () => Promise<QueryObserverResult<TData, TError>>\n refetch: QueryObserverResult<TData, TError>['refetch']\n remove: QueryObserverResult<TData, TError>['remove']\n}\n\nexport type UseQueryOptions<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = WithQueryClientKey<\n VueQueryObserverOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>\n>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey'\n >,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn' | 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn' | 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn'\n >,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n arg1: TQueryKey | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg2?:\n | QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg3?: UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n):\n | UseQueryReturnType<TData, TError>\n | UseQueryDefinedReturnType<TData, TError> {\n const result = useBaseQuery(QueryObserver, arg1, arg2, arg3)\n\n return {\n ...result,\n refetch: result.refetch.value,\n remove: result.remove.value,\n }\n}\n"],"names":["useQuery","arg1","arg2","arg3","result","useBaseQuery","QueryObserver","refetch","value","remove"],"mappings":";;;AAwJO,SAASA,QAAT,CAMLC,IANK,EAOLC,IAPK,EAULC,IAVK,EAasC;EAC3C,MAAMC,MAAM,GAAGC,YAAY,CAACC,aAAD,EAAgBL,IAAhB,EAAsBC,IAAtB,EAA4BC,IAA5B,CAA3B,CAAA;EAEA,OAAO,EACL,GAAGC,MADE;AAELG,IAAAA,OAAO,EAAEH,MAAM,CAACG,OAAP,CAAeC,KAFnB;AAGLC,IAAAA,MAAM,EAAEL,MAAM,CAACK,MAAP,CAAcD,KAAAA;GAHxB,CAAA;AAKD;;;;"}
@@ -6,19 +6,17 @@ declare global {
6
6
  __VUE_QUERY_CONTEXT__?: QueryClient;
7
7
  }
8
8
  }
9
- export interface AdditionalClient {
10
- queryClient: QueryClient;
11
- queryClientKey: string;
12
- }
13
- interface ConfigOptions {
14
- queryClientConfig?: MaybeRefDeep<QueryClientConfig>;
9
+ declare type ClientPersister = (client: QueryClient) => [() => void, Promise<void>];
10
+ interface CommonOptions {
15
11
  queryClientKey?: string;
16
12
  contextSharing?: boolean;
13
+ clientPersister?: ClientPersister;
14
+ }
15
+ interface ConfigOptions extends CommonOptions {
16
+ queryClientConfig?: MaybeRefDeep<QueryClientConfig>;
17
17
  }
18
- interface ClientOptions {
18
+ interface ClientOptions extends CommonOptions {
19
19
  queryClient?: QueryClient;
20
- queryClientKey?: string;
21
- contextSharing?: boolean;
22
20
  }
23
21
  export declare type VueQueryPluginOptions = ConfigOptions | ClientOptions;
24
22
  export declare const VueQueryPlugin: {
@@ -27,12 +27,25 @@ const VueQueryPlugin = {
27
27
 
28
28
  client.mount();
29
29
 
30
+ let persisterUnmount = () => {// noop
31
+ };
32
+
33
+ if (options.clientPersister) {
34
+ client.isRestoring.value = true;
35
+ const [unmount, promise] = options.clientPersister(client);
36
+ persisterUnmount = unmount;
37
+ promise.then(() => {
38
+ client.isRestoring.value = false;
39
+ });
40
+ }
41
+
30
42
  if (process.env.NODE_ENV !== 'production' && options.contextSharing) {
31
43
  client.getLogger().error("The contextSharing option has been deprecated and will be removed in the next major version");
32
44
  }
33
45
 
34
46
  const cleanup = () => {
35
47
  client.unmount();
48
+ persisterUnmount();
36
49
  };
37
50
 
38
51
  if (app.onUnmount) {
@@ -1 +1 @@
1
- {"version":3,"file":"vueQueryPlugin.esm.js","sources":["../../src/vueQueryPlugin.ts"],"sourcesContent":["import { isVue2 } from 'vue-demi'\nimport type { QueryClientConfig } from '@tanstack/query-core'\n\nimport { QueryClient } from './queryClient'\nimport { getClientKey } from './utils'\nimport { setupDevtools } from './devtools/devtools'\nimport type { MaybeRefDeep } from './types'\n\ndeclare global {\n interface Window {\n __VUE_QUERY_CONTEXT__?: QueryClient\n }\n}\n\nexport interface AdditionalClient {\n queryClient: QueryClient\n queryClientKey: string\n}\n\ninterface ConfigOptions {\n queryClientConfig?: MaybeRefDeep<QueryClientConfig>\n queryClientKey?: string\n contextSharing?: boolean\n}\n\ninterface ClientOptions {\n queryClient?: QueryClient\n queryClientKey?: string\n contextSharing?: boolean\n}\n\nexport type VueQueryPluginOptions = ConfigOptions | ClientOptions\n\nexport const VueQueryPlugin = {\n install: (app: any, options: VueQueryPluginOptions = {}) => {\n const clientKey = getClientKey(options.queryClientKey)\n let client: QueryClient\n\n if ('queryClient' in options && options.queryClient) {\n client = options.queryClient\n } else {\n if (options.contextSharing && typeof window !== 'undefined') {\n if (!window.__VUE_QUERY_CONTEXT__) {\n const clientConfig =\n 'queryClientConfig' in options\n ? options.queryClientConfig\n : undefined\n client = new QueryClient(clientConfig)\n window.__VUE_QUERY_CONTEXT__ = client\n } else {\n client = window.__VUE_QUERY_CONTEXT__\n }\n } else {\n const clientConfig =\n 'queryClientConfig' in options ? options.queryClientConfig : undefined\n client = new QueryClient(clientConfig)\n }\n }\n\n client.mount()\n\n if (process.env.NODE_ENV !== 'production' && options.contextSharing) {\n client\n .getLogger()\n .error(\n `The contextSharing option has been deprecated and will be removed in the next major version`,\n )\n }\n\n const cleanup = () => {\n client.unmount()\n }\n\n if (app.onUnmount) {\n app.onUnmount(cleanup)\n } else {\n const originalUnmount = app.unmount\n app.unmount = function vueQueryUnmount() {\n cleanup()\n originalUnmount()\n }\n }\n\n /* istanbul ignore next */\n if (isVue2) {\n app.mixin({\n beforeCreate() {\n // HACK: taken from provide(): https://github.com/vuejs/composition-api/blob/master/src/apis/inject.ts#L30\n if (!this._provided) {\n const provideCache = {}\n Object.defineProperty(this, '_provided', {\n get: () => provideCache,\n set: (v) => Object.assign(provideCache, v),\n })\n }\n\n this._provided[clientKey] = client\n\n if (process.env.NODE_ENV === 'development') {\n if (this === this.$root) {\n setupDevtools(this, client)\n }\n }\n },\n })\n } else {\n app.provide(clientKey, client)\n\n if (process.env.NODE_ENV === 'development') {\n setupDevtools(app, client)\n }\n }\n },\n}\n"],"names":["VueQueryPlugin","install","app","options","clientKey","getClientKey","queryClientKey","client","queryClient","contextSharing","window","__VUE_QUERY_CONTEXT__","clientConfig","queryClientConfig","undefined","QueryClient","mount","process","env","NODE_ENV","getLogger","error","cleanup","unmount","onUnmount","originalUnmount","vueQueryUnmount","isVue2","mixin","beforeCreate","_provided","provideCache","Object","defineProperty","get","set","v","assign","$root","setupDevtools","provide"],"mappings":";;;;;AAiCO,MAAMA,cAAc,GAAG;AAC5BC,EAAAA,OAAO,EAAE,CAACC,GAAD,EAAWC,OAA8B,GAAG,EAA5C,KAAmD;AAC1D,IAAA,MAAMC,SAAS,GAAGC,YAAY,CAACF,OAAO,CAACG,cAAT,CAA9B,CAAA;AACA,IAAA,IAAIC,MAAJ,CAAA;;AAEA,IAAA,IAAI,iBAAiBJ,OAAjB,IAA4BA,OAAO,CAACK,WAAxC,EAAqD;MACnDD,MAAM,GAAGJ,OAAO,CAACK,WAAjB,CAAA;AACD,KAFD,MAEO;MACL,IAAIL,OAAO,CAACM,cAAR,IAA0B,OAAOC,MAAP,KAAkB,WAAhD,EAA6D;AAC3D,QAAA,IAAI,CAACA,MAAM,CAACC,qBAAZ,EAAmC;UACjC,MAAMC,YAAY,GAChB,mBAAuBT,IAAAA,OAAvB,GACIA,OAAO,CAACU,iBADZ,GAEIC,SAHN,CAAA;AAIAP,UAAAA,MAAM,GAAG,IAAIQ,WAAJ,CAAgBH,YAAhB,CAAT,CAAA;UACAF,MAAM,CAACC,qBAAP,GAA+BJ,MAA/B,CAAA;AACD,SAPD,MAOO;UACLA,MAAM,GAAGG,MAAM,CAACC,qBAAhB,CAAA;AACD,SAAA;AACF,OAXD,MAWO;QACL,MAAMC,YAAY,GAChB,mBAAuBT,IAAAA,OAAvB,GAAiCA,OAAO,CAACU,iBAAzC,GAA6DC,SAD/D,CAAA;AAEAP,QAAAA,MAAM,GAAG,IAAIQ,WAAJ,CAAgBH,YAAhB,CAAT,CAAA;AACD,OAAA;AACF,KAAA;;AAEDL,IAAAA,MAAM,CAACS,KAAP,EAAA,CAAA;;IAEA,IAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyChB,OAAO,CAACM,cAArD,EAAqE;MACnEF,MAAM,CACHa,SADH,EAAA,CAEGC,KAFH,CAAA,6FAAA,CAAA,CAAA;AAKD,KAAA;;IAED,MAAMC,OAAO,GAAG,MAAM;AACpBf,MAAAA,MAAM,CAACgB,OAAP,EAAA,CAAA;KADF,CAAA;;IAIA,IAAIrB,GAAG,CAACsB,SAAR,EAAmB;MACjBtB,GAAG,CAACsB,SAAJ,CAAcF,OAAd,CAAA,CAAA;AACD,KAFD,MAEO;AACL,MAAA,MAAMG,eAAe,GAAGvB,GAAG,CAACqB,OAA5B,CAAA;;AACArB,MAAAA,GAAG,CAACqB,OAAJ,GAAc,SAASG,eAAT,GAA2B;QACvCJ,OAAO,EAAA,CAAA;QACPG,eAAe,EAAA,CAAA;OAFjB,CAAA;AAID,KAAA;AAED;;;AACA,IAAA,IAAIE,MAAJ,EAAY;MACVzB,GAAG,CAAC0B,KAAJ,CAAU;AACRC,QAAAA,YAAY,GAAG;AACb;UACA,IAAI,CAAC,IAAKC,CAAAA,SAAV,EAAqB;YACnB,MAAMC,YAAY,GAAG,EAArB,CAAA;AACAC,YAAAA,MAAM,CAACC,cAAP,CAAsB,IAAtB,EAA4B,WAA5B,EAAyC;cACvCC,GAAG,EAAE,MAAMH,YAD4B;cAEvCI,GAAG,EAAGC,CAAD,IAAOJ,MAAM,CAACK,MAAP,CAAcN,YAAd,EAA4BK,CAA5B,CAAA;aAFd,CAAA,CAAA;AAID,WAAA;;AAED,UAAA,IAAA,CAAKN,SAAL,CAAe1B,SAAf,CAAA,GAA4BG,MAA5B,CAAA;;AAEA,UAAA,IAAIU,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;YAC1C,IAAI,IAAA,KAAS,IAAKmB,CAAAA,KAAlB,EAAyB;AACvBC,cAAAA,aAAa,CAAC,IAAD,EAAOhC,MAAP,CAAb,CAAA;AACD,aAAA;AACF,WAAA;AACF,SAAA;;OAlBH,CAAA,CAAA;AAoBD,KArBD,MAqBO;AACLL,MAAAA,GAAG,CAACsC,OAAJ,CAAYpC,SAAZ,EAAuBG,MAAvB,CAAA,CAAA;;AAEA,MAAA,IAAIU,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;AAC1CoB,QAAAA,aAAa,CAACrC,GAAD,EAAMK,MAAN,CAAb,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;AA/E2B;;;;"}
1
+ {"version":3,"file":"vueQueryPlugin.esm.js","sources":["../../src/vueQueryPlugin.ts"],"sourcesContent":["import { isVue2 } from 'vue-demi'\nimport type { QueryClientConfig } from '@tanstack/query-core'\n\nimport { QueryClient } from './queryClient'\nimport { getClientKey } from './utils'\nimport { setupDevtools } from './devtools/devtools'\nimport type { MaybeRefDeep } from './types'\n\ndeclare global {\n interface Window {\n __VUE_QUERY_CONTEXT__?: QueryClient\n }\n}\n\ntype ClientPersister = (client: QueryClient) => [() => void, Promise<void>]\n\ninterface CommonOptions {\n queryClientKey?: string\n contextSharing?: boolean\n clientPersister?: ClientPersister\n}\n\ninterface ConfigOptions extends CommonOptions {\n queryClientConfig?: MaybeRefDeep<QueryClientConfig>\n}\n\ninterface ClientOptions extends CommonOptions {\n queryClient?: QueryClient\n}\n\nexport type VueQueryPluginOptions = ConfigOptions | ClientOptions\n\nexport const VueQueryPlugin = {\n install: (app: any, options: VueQueryPluginOptions = {}) => {\n const clientKey = getClientKey(options.queryClientKey)\n let client: QueryClient\n\n if ('queryClient' in options && options.queryClient) {\n client = options.queryClient\n } else {\n if (options.contextSharing && typeof window !== 'undefined') {\n if (!window.__VUE_QUERY_CONTEXT__) {\n const clientConfig =\n 'queryClientConfig' in options\n ? options.queryClientConfig\n : undefined\n client = new QueryClient(clientConfig)\n window.__VUE_QUERY_CONTEXT__ = client\n } else {\n client = window.__VUE_QUERY_CONTEXT__\n }\n } else {\n const clientConfig =\n 'queryClientConfig' in options ? options.queryClientConfig : undefined\n client = new QueryClient(clientConfig)\n }\n }\n\n client.mount()\n let persisterUnmount = () => {\n // noop\n }\n\n if (options.clientPersister) {\n client.isRestoring.value = true\n const [unmount, promise] = options.clientPersister(client)\n persisterUnmount = unmount\n promise.then(() => {\n client.isRestoring.value = false\n })\n }\n\n if (process.env.NODE_ENV !== 'production' && options.contextSharing) {\n client\n .getLogger()\n .error(\n `The contextSharing option has been deprecated and will be removed in the next major version`,\n )\n }\n\n const cleanup = () => {\n client.unmount()\n persisterUnmount()\n }\n\n if (app.onUnmount) {\n app.onUnmount(cleanup)\n } else {\n const originalUnmount = app.unmount\n app.unmount = function vueQueryUnmount() {\n cleanup()\n originalUnmount()\n }\n }\n\n /* istanbul ignore next */\n if (isVue2) {\n app.mixin({\n beforeCreate() {\n // HACK: taken from provide(): https://github.com/vuejs/composition-api/blob/master/src/apis/inject.ts#L30\n if (!this._provided) {\n const provideCache = {}\n Object.defineProperty(this, '_provided', {\n get: () => provideCache,\n set: (v) => Object.assign(provideCache, v),\n })\n }\n\n this._provided[clientKey] = client\n\n if (process.env.NODE_ENV === 'development') {\n if (this === this.$root) {\n setupDevtools(this, client)\n }\n }\n },\n })\n } else {\n app.provide(clientKey, client)\n\n if (process.env.NODE_ENV === 'development') {\n setupDevtools(app, client)\n }\n }\n },\n}\n"],"names":["VueQueryPlugin","install","app","options","clientKey","getClientKey","queryClientKey","client","queryClient","contextSharing","window","__VUE_QUERY_CONTEXT__","clientConfig","queryClientConfig","undefined","QueryClient","mount","persisterUnmount","clientPersister","isRestoring","value","unmount","promise","then","process","env","NODE_ENV","getLogger","error","cleanup","onUnmount","originalUnmount","vueQueryUnmount","isVue2","mixin","beforeCreate","_provided","provideCache","Object","defineProperty","get","set","v","assign","$root","setupDevtools","provide"],"mappings":"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"}
@@ -31,12 +31,25 @@ const VueQueryPlugin = {
31
31
 
32
32
  client.mount();
33
33
 
34
+ let persisterUnmount = () => {// noop
35
+ };
36
+
37
+ if (options.clientPersister) {
38
+ client.isRestoring.value = true;
39
+ const [unmount, promise] = options.clientPersister(client);
40
+ persisterUnmount = unmount;
41
+ promise.then(() => {
42
+ client.isRestoring.value = false;
43
+ });
44
+ }
45
+
34
46
  if (process.env.NODE_ENV !== 'production' && options.contextSharing) {
35
47
  client.getLogger().error("The contextSharing option has been deprecated and will be removed in the next major version");
36
48
  }
37
49
 
38
50
  const cleanup = () => {
39
51
  client.unmount();
52
+ persisterUnmount();
40
53
  };
41
54
 
42
55
  if (app.onUnmount) {
@@ -1 +1 @@
1
- {"version":3,"file":"vueQueryPlugin.js","sources":["../../src/vueQueryPlugin.ts"],"sourcesContent":["import { isVue2 } from 'vue-demi'\nimport type { QueryClientConfig } from '@tanstack/query-core'\n\nimport { QueryClient } from './queryClient'\nimport { getClientKey } from './utils'\nimport { setupDevtools } from './devtools/devtools'\nimport type { MaybeRefDeep } from './types'\n\ndeclare global {\n interface Window {\n __VUE_QUERY_CONTEXT__?: QueryClient\n }\n}\n\nexport interface AdditionalClient {\n queryClient: QueryClient\n queryClientKey: string\n}\n\ninterface ConfigOptions {\n queryClientConfig?: MaybeRefDeep<QueryClientConfig>\n queryClientKey?: string\n contextSharing?: boolean\n}\n\ninterface ClientOptions {\n queryClient?: QueryClient\n queryClientKey?: string\n contextSharing?: boolean\n}\n\nexport type VueQueryPluginOptions = ConfigOptions | ClientOptions\n\nexport const VueQueryPlugin = {\n install: (app: any, options: VueQueryPluginOptions = {}) => {\n const clientKey = getClientKey(options.queryClientKey)\n let client: QueryClient\n\n if ('queryClient' in options && options.queryClient) {\n client = options.queryClient\n } else {\n if (options.contextSharing && typeof window !== 'undefined') {\n if (!window.__VUE_QUERY_CONTEXT__) {\n const clientConfig =\n 'queryClientConfig' in options\n ? options.queryClientConfig\n : undefined\n client = new QueryClient(clientConfig)\n window.__VUE_QUERY_CONTEXT__ = client\n } else {\n client = window.__VUE_QUERY_CONTEXT__\n }\n } else {\n const clientConfig =\n 'queryClientConfig' in options ? options.queryClientConfig : undefined\n client = new QueryClient(clientConfig)\n }\n }\n\n client.mount()\n\n if (process.env.NODE_ENV !== 'production' && options.contextSharing) {\n client\n .getLogger()\n .error(\n `The contextSharing option has been deprecated and will be removed in the next major version`,\n )\n }\n\n const cleanup = () => {\n client.unmount()\n }\n\n if (app.onUnmount) {\n app.onUnmount(cleanup)\n } else {\n const originalUnmount = app.unmount\n app.unmount = function vueQueryUnmount() {\n cleanup()\n originalUnmount()\n }\n }\n\n /* istanbul ignore next */\n if (isVue2) {\n app.mixin({\n beforeCreate() {\n // HACK: taken from provide(): https://github.com/vuejs/composition-api/blob/master/src/apis/inject.ts#L30\n if (!this._provided) {\n const provideCache = {}\n Object.defineProperty(this, '_provided', {\n get: () => provideCache,\n set: (v) => Object.assign(provideCache, v),\n })\n }\n\n this._provided[clientKey] = client\n\n if (process.env.NODE_ENV === 'development') {\n if (this === this.$root) {\n setupDevtools(this, client)\n }\n }\n },\n })\n } else {\n app.provide(clientKey, client)\n\n if (process.env.NODE_ENV === 'development') {\n setupDevtools(app, client)\n }\n }\n },\n}\n"],"names":["VueQueryPlugin","install","app","options","clientKey","getClientKey","queryClientKey","client","queryClient","contextSharing","window","__VUE_QUERY_CONTEXT__","clientConfig","queryClientConfig","undefined","QueryClient","mount","process","env","NODE_ENV","getLogger","error","cleanup","unmount","onUnmount","originalUnmount","vueQueryUnmount","isVue2","mixin","beforeCreate","_provided","provideCache","Object","defineProperty","get","set","v","assign","$root","setupDevtools","provide"],"mappings":"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"}
1
+ {"version":3,"file":"vueQueryPlugin.js","sources":["../../src/vueQueryPlugin.ts"],"sourcesContent":["import { isVue2 } from 'vue-demi'\nimport type { QueryClientConfig } from '@tanstack/query-core'\n\nimport { QueryClient } from './queryClient'\nimport { getClientKey } from './utils'\nimport { setupDevtools } from './devtools/devtools'\nimport type { MaybeRefDeep } from './types'\n\ndeclare global {\n interface Window {\n __VUE_QUERY_CONTEXT__?: QueryClient\n }\n}\n\ntype ClientPersister = (client: QueryClient) => [() => void, Promise<void>]\n\ninterface CommonOptions {\n queryClientKey?: string\n contextSharing?: boolean\n clientPersister?: ClientPersister\n}\n\ninterface ConfigOptions extends CommonOptions {\n queryClientConfig?: MaybeRefDeep<QueryClientConfig>\n}\n\ninterface ClientOptions extends CommonOptions {\n queryClient?: QueryClient\n}\n\nexport type VueQueryPluginOptions = ConfigOptions | ClientOptions\n\nexport const VueQueryPlugin = {\n install: (app: any, options: VueQueryPluginOptions = {}) => {\n const clientKey = getClientKey(options.queryClientKey)\n let client: QueryClient\n\n if ('queryClient' in options && options.queryClient) {\n client = options.queryClient\n } else {\n if (options.contextSharing && typeof window !== 'undefined') {\n if (!window.__VUE_QUERY_CONTEXT__) {\n const clientConfig =\n 'queryClientConfig' in options\n ? options.queryClientConfig\n : undefined\n client = new QueryClient(clientConfig)\n window.__VUE_QUERY_CONTEXT__ = client\n } else {\n client = window.__VUE_QUERY_CONTEXT__\n }\n } else {\n const clientConfig =\n 'queryClientConfig' in options ? options.queryClientConfig : undefined\n client = new QueryClient(clientConfig)\n }\n }\n\n client.mount()\n let persisterUnmount = () => {\n // noop\n }\n\n if (options.clientPersister) {\n client.isRestoring.value = true\n const [unmount, promise] = options.clientPersister(client)\n persisterUnmount = unmount\n promise.then(() => {\n client.isRestoring.value = false\n })\n }\n\n if (process.env.NODE_ENV !== 'production' && options.contextSharing) {\n client\n .getLogger()\n .error(\n `The contextSharing option has been deprecated and will be removed in the next major version`,\n )\n }\n\n const cleanup = () => {\n client.unmount()\n persisterUnmount()\n }\n\n if (app.onUnmount) {\n app.onUnmount(cleanup)\n } else {\n const originalUnmount = app.unmount\n app.unmount = function vueQueryUnmount() {\n cleanup()\n originalUnmount()\n }\n }\n\n /* istanbul ignore next */\n if (isVue2) {\n app.mixin({\n beforeCreate() {\n // HACK: taken from provide(): https://github.com/vuejs/composition-api/blob/master/src/apis/inject.ts#L30\n if (!this._provided) {\n const provideCache = {}\n Object.defineProperty(this, '_provided', {\n get: () => provideCache,\n set: (v) => Object.assign(provideCache, v),\n })\n }\n\n this._provided[clientKey] = client\n\n if (process.env.NODE_ENV === 'development') {\n if (this === this.$root) {\n setupDevtools(this, client)\n }\n }\n },\n })\n } else {\n app.provide(clientKey, client)\n\n if (process.env.NODE_ENV === 'development') {\n setupDevtools(app, client)\n }\n }\n },\n}\n"],"names":["VueQueryPlugin","install","app","options","clientKey","getClientKey","queryClientKey","client","queryClient","contextSharing","window","__VUE_QUERY_CONTEXT__","clientConfig","queryClientConfig","undefined","QueryClient","mount","persisterUnmount","clientPersister","isRestoring","value","unmount","promise","then","process","env","NODE_ENV","getLogger","error","cleanup","onUnmount","originalUnmount","vueQueryUnmount","isVue2","mixin","beforeCreate","_provided","provideCache","Object","defineProperty","get","set","v","assign","$root","setupDevtools","provide"],"mappings":"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"}
@@ -27,12 +27,25 @@ const VueQueryPlugin = {
27
27
 
28
28
  client.mount();
29
29
 
30
+ let persisterUnmount = () => {// noop
31
+ };
32
+
33
+ if (options.clientPersister) {
34
+ client.isRestoring.value = true;
35
+ const [unmount, promise] = options.clientPersister(client);
36
+ persisterUnmount = unmount;
37
+ promise.then(() => {
38
+ client.isRestoring.value = false;
39
+ });
40
+ }
41
+
30
42
  if (process.env.NODE_ENV !== 'production' && options.contextSharing) {
31
43
  client.getLogger().error("The contextSharing option has been deprecated and will be removed in the next major version");
32
44
  }
33
45
 
34
46
  const cleanup = () => {
35
47
  client.unmount();
48
+ persisterUnmount();
36
49
  };
37
50
 
38
51
  if (app.onUnmount) {
@@ -1 +1 @@
1
- {"version":3,"file":"vueQueryPlugin.mjs","sources":["../../src/vueQueryPlugin.ts"],"sourcesContent":["import { isVue2 } from 'vue-demi'\nimport type { QueryClientConfig } from '@tanstack/query-core'\n\nimport { QueryClient } from './queryClient'\nimport { getClientKey } from './utils'\nimport { setupDevtools } from './devtools/devtools'\nimport type { MaybeRefDeep } from './types'\n\ndeclare global {\n interface Window {\n __VUE_QUERY_CONTEXT__?: QueryClient\n }\n}\n\nexport interface AdditionalClient {\n queryClient: QueryClient\n queryClientKey: string\n}\n\ninterface ConfigOptions {\n queryClientConfig?: MaybeRefDeep<QueryClientConfig>\n queryClientKey?: string\n contextSharing?: boolean\n}\n\ninterface ClientOptions {\n queryClient?: QueryClient\n queryClientKey?: string\n contextSharing?: boolean\n}\n\nexport type VueQueryPluginOptions = ConfigOptions | ClientOptions\n\nexport const VueQueryPlugin = {\n install: (app: any, options: VueQueryPluginOptions = {}) => {\n const clientKey = getClientKey(options.queryClientKey)\n let client: QueryClient\n\n if ('queryClient' in options && options.queryClient) {\n client = options.queryClient\n } else {\n if (options.contextSharing && typeof window !== 'undefined') {\n if (!window.__VUE_QUERY_CONTEXT__) {\n const clientConfig =\n 'queryClientConfig' in options\n ? options.queryClientConfig\n : undefined\n client = new QueryClient(clientConfig)\n window.__VUE_QUERY_CONTEXT__ = client\n } else {\n client = window.__VUE_QUERY_CONTEXT__\n }\n } else {\n const clientConfig =\n 'queryClientConfig' in options ? options.queryClientConfig : undefined\n client = new QueryClient(clientConfig)\n }\n }\n\n client.mount()\n\n if (process.env.NODE_ENV !== 'production' && options.contextSharing) {\n client\n .getLogger()\n .error(\n `The contextSharing option has been deprecated and will be removed in the next major version`,\n )\n }\n\n const cleanup = () => {\n client.unmount()\n }\n\n if (app.onUnmount) {\n app.onUnmount(cleanup)\n } else {\n const originalUnmount = app.unmount\n app.unmount = function vueQueryUnmount() {\n cleanup()\n originalUnmount()\n }\n }\n\n /* istanbul ignore next */\n if (isVue2) {\n app.mixin({\n beforeCreate() {\n // HACK: taken from provide(): https://github.com/vuejs/composition-api/blob/master/src/apis/inject.ts#L30\n if (!this._provided) {\n const provideCache = {}\n Object.defineProperty(this, '_provided', {\n get: () => provideCache,\n set: (v) => Object.assign(provideCache, v),\n })\n }\n\n this._provided[clientKey] = client\n\n if (process.env.NODE_ENV === 'development') {\n if (this === this.$root) {\n setupDevtools(this, client)\n }\n }\n },\n })\n } else {\n app.provide(clientKey, client)\n\n if (process.env.NODE_ENV === 'development') {\n setupDevtools(app, client)\n }\n }\n },\n}\n"],"names":["VueQueryPlugin","install","app","options","clientKey","getClientKey","queryClientKey","client","queryClient","contextSharing","window","__VUE_QUERY_CONTEXT__","clientConfig","queryClientConfig","undefined","QueryClient","mount","process","env","NODE_ENV","getLogger","error","cleanup","unmount","onUnmount","originalUnmount","vueQueryUnmount","isVue2","mixin","beforeCreate","_provided","provideCache","Object","defineProperty","get","set","v","assign","$root","setupDevtools","provide"],"mappings":"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"}
1
+ {"version":3,"file":"vueQueryPlugin.mjs","sources":["../../src/vueQueryPlugin.ts"],"sourcesContent":["import { isVue2 } from 'vue-demi'\nimport type { QueryClientConfig } from '@tanstack/query-core'\n\nimport { QueryClient } from './queryClient'\nimport { getClientKey } from './utils'\nimport { setupDevtools } from './devtools/devtools'\nimport type { MaybeRefDeep } from './types'\n\ndeclare global {\n interface Window {\n __VUE_QUERY_CONTEXT__?: QueryClient\n }\n}\n\ntype ClientPersister = (client: QueryClient) => [() => void, Promise<void>]\n\ninterface CommonOptions {\n queryClientKey?: string\n contextSharing?: boolean\n clientPersister?: ClientPersister\n}\n\ninterface ConfigOptions extends CommonOptions {\n queryClientConfig?: MaybeRefDeep<QueryClientConfig>\n}\n\ninterface ClientOptions extends CommonOptions {\n queryClient?: QueryClient\n}\n\nexport type VueQueryPluginOptions = ConfigOptions | ClientOptions\n\nexport const VueQueryPlugin = {\n install: (app: any, options: VueQueryPluginOptions = {}) => {\n const clientKey = getClientKey(options.queryClientKey)\n let client: QueryClient\n\n if ('queryClient' in options && options.queryClient) {\n client = options.queryClient\n } else {\n if (options.contextSharing && typeof window !== 'undefined') {\n if (!window.__VUE_QUERY_CONTEXT__) {\n const clientConfig =\n 'queryClientConfig' in options\n ? options.queryClientConfig\n : undefined\n client = new QueryClient(clientConfig)\n window.__VUE_QUERY_CONTEXT__ = client\n } else {\n client = window.__VUE_QUERY_CONTEXT__\n }\n } else {\n const clientConfig =\n 'queryClientConfig' in options ? options.queryClientConfig : undefined\n client = new QueryClient(clientConfig)\n }\n }\n\n client.mount()\n let persisterUnmount = () => {\n // noop\n }\n\n if (options.clientPersister) {\n client.isRestoring.value = true\n const [unmount, promise] = options.clientPersister(client)\n persisterUnmount = unmount\n promise.then(() => {\n client.isRestoring.value = false\n })\n }\n\n if (process.env.NODE_ENV !== 'production' && options.contextSharing) {\n client\n .getLogger()\n .error(\n `The contextSharing option has been deprecated and will be removed in the next major version`,\n )\n }\n\n const cleanup = () => {\n client.unmount()\n persisterUnmount()\n }\n\n if (app.onUnmount) {\n app.onUnmount(cleanup)\n } else {\n const originalUnmount = app.unmount\n app.unmount = function vueQueryUnmount() {\n cleanup()\n originalUnmount()\n }\n }\n\n /* istanbul ignore next */\n if (isVue2) {\n app.mixin({\n beforeCreate() {\n // HACK: taken from provide(): https://github.com/vuejs/composition-api/blob/master/src/apis/inject.ts#L30\n if (!this._provided) {\n const provideCache = {}\n Object.defineProperty(this, '_provided', {\n get: () => provideCache,\n set: (v) => Object.assign(provideCache, v),\n })\n }\n\n this._provided[clientKey] = client\n\n if (process.env.NODE_ENV === 'development') {\n if (this === this.$root) {\n setupDevtools(this, client)\n }\n }\n },\n })\n } else {\n app.provide(clientKey, client)\n\n if (process.env.NODE_ENV === 'development') {\n setupDevtools(app, client)\n }\n }\n },\n}\n"],"names":["VueQueryPlugin","install","app","options","clientKey","getClientKey","queryClientKey","client","queryClient","contextSharing","window","__VUE_QUERY_CONTEXT__","clientConfig","queryClientConfig","undefined","QueryClient","mount","persisterUnmount","clientPersister","isRestoring","value","unmount","promise","then","process","env","NODE_ENV","getLogger","error","cleanup","onUnmount","originalUnmount","vueQueryUnmount","isVue2","mixin","beforeCreate","_provided","provideCache","Object","defineProperty","get","set","v","assign","$root","setupDevtools","provide"],"mappings":"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"}