@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.
- package/build/lib/__mocks__/useBaseQuery.d.ts +1 -0
- package/build/lib/devtools/devtools.esm.js +1 -1
- package/build/lib/devtools/devtools.esm.js.map +1 -1
- package/build/lib/devtools/devtools.js +1 -1
- package/build/lib/devtools/devtools.js.map +1 -1
- package/build/lib/devtools/devtools.mjs +1 -1
- package/build/lib/devtools/devtools.mjs.map +1 -1
- package/build/lib/index.d.ts +2 -3
- package/build/lib/index.js +4 -4
- package/build/lib/queryClient.d.ts +1 -0
- package/build/lib/queryClient.esm.js +2 -0
- package/build/lib/queryClient.esm.js.map +1 -1
- package/build/lib/queryClient.js +2 -0
- package/build/lib/queryClient.js.map +1 -1
- package/build/lib/queryClient.mjs +2 -0
- package/build/lib/queryClient.mjs.map +1 -1
- package/build/lib/useBaseQuery.d.ts +4 -2
- package/build/lib/useBaseQuery.esm.js +55 -42
- package/build/lib/useBaseQuery.esm.js.map +1 -1
- package/build/lib/useBaseQuery.js +54 -40
- package/build/lib/useBaseQuery.js.map +1 -1
- package/build/lib/useBaseQuery.mjs +55 -42
- package/build/lib/useBaseQuery.mjs.map +1 -1
- package/build/lib/useInfiniteQuery.d.ts +1 -1
- package/build/lib/useInfiniteQuery.esm.js.map +1 -1
- package/build/lib/useInfiniteQuery.js.map +1 -1
- package/build/lib/useInfiniteQuery.mjs.map +1 -1
- package/build/lib/useIsFetching.d.ts +3 -3
- package/build/lib/useIsFetching.esm.js +10 -9
- package/build/lib/useIsFetching.esm.js.map +1 -1
- package/build/lib/useIsFetching.js +9 -8
- package/build/lib/useIsFetching.js.map +1 -1
- package/build/lib/useIsFetching.mjs +10 -9
- package/build/lib/useIsFetching.mjs.map +1 -1
- package/build/lib/useIsMutating.d.ts +3 -3
- package/build/lib/useIsMutating.esm.js +12 -11
- package/build/lib/useIsMutating.esm.js.map +1 -1
- package/build/lib/useIsMutating.js +11 -10
- package/build/lib/useIsMutating.js.map +1 -1
- package/build/lib/useIsMutating.mjs +12 -11
- package/build/lib/useIsMutating.mjs.map +1 -1
- package/build/lib/useQueries.esm.js +28 -18
- package/build/lib/useQueries.esm.js.map +1 -1
- package/build/lib/useQueries.js +27 -17
- package/build/lib/useQueries.js.map +1 -1
- package/build/lib/useQueries.mjs +28 -18
- package/build/lib/useQueries.mjs.map +1 -1
- package/build/lib/useQuery.d.ts +2 -3
- package/build/lib/useQuery.esm.js.map +1 -1
- package/build/lib/useQuery.js.map +1 -1
- package/build/lib/useQuery.mjs.map +1 -1
- package/build/lib/vueQueryPlugin.d.ts +7 -9
- package/build/lib/vueQueryPlugin.esm.js +13 -0
- package/build/lib/vueQueryPlugin.esm.js.map +1 -1
- package/build/lib/vueQueryPlugin.js +13 -0
- package/build/lib/vueQueryPlugin.js.map +1 -1
- package/build/lib/vueQueryPlugin.mjs +13 -0
- package/build/lib/vueQueryPlugin.mjs.map +1 -1
- package/build/umd/index.development.js +132 -93
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- 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\
|
|
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
|
-
|
|
10
|
-
|
|
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\
|
|
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\
|
|
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\
|
|
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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"}
|