@tanstack/vue-query 5.0.0-alpha.63 → 5.0.0-alpha.64

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 (62) hide show
  1. package/build/lib/useBaseQuery.cjs +9 -9
  2. package/build/lib/useBaseQuery.cjs.map +1 -1
  3. package/build/lib/useBaseQuery.d.ts.map +1 -1
  4. package/build/lib/useBaseQuery.js +10 -10
  5. package/build/lib/useBaseQuery.js.map +1 -1
  6. package/build/lib/useBaseQuery.legacy.cjs +9 -9
  7. package/build/lib/useBaseQuery.legacy.cjs.map +1 -1
  8. package/build/lib/useBaseQuery.legacy.js +10 -10
  9. package/build/lib/useBaseQuery.legacy.js.map +1 -1
  10. package/build/lib/useIsFetching.cjs +4 -1
  11. package/build/lib/useIsFetching.cjs.map +1 -1
  12. package/build/lib/useIsFetching.d.ts.map +1 -1
  13. package/build/lib/useIsFetching.js +5 -2
  14. package/build/lib/useIsFetching.js.map +1 -1
  15. package/build/lib/useIsFetching.legacy.cjs +4 -1
  16. package/build/lib/useIsFetching.legacy.cjs.map +1 -1
  17. package/build/lib/useIsFetching.legacy.js +5 -2
  18. package/build/lib/useIsFetching.legacy.js.map +1 -1
  19. package/build/lib/useMutation.cjs +3 -1
  20. package/build/lib/useMutation.cjs.map +1 -1
  21. package/build/lib/useMutation.d.ts.map +1 -1
  22. package/build/lib/useMutation.js +5 -3
  23. package/build/lib/useMutation.js.map +1 -1
  24. package/build/lib/useMutation.legacy.cjs +3 -1
  25. package/build/lib/useMutation.legacy.cjs.map +1 -1
  26. package/build/lib/useMutation.legacy.js +5 -3
  27. package/build/lib/useMutation.legacy.js.map +1 -1
  28. package/build/lib/useQueries.cjs +8 -7
  29. package/build/lib/useQueries.cjs.map +1 -1
  30. package/build/lib/useQueries.d.ts.map +1 -1
  31. package/build/lib/useQueries.js +10 -9
  32. package/build/lib/useQueries.js.map +1 -1
  33. package/build/lib/useQueries.legacy.cjs +8 -7
  34. package/build/lib/useQueries.legacy.cjs.map +1 -1
  35. package/build/lib/useQueries.legacy.js +10 -9
  36. package/build/lib/useQueries.legacy.js.map +1 -1
  37. package/build/lib/utils.cjs +4 -0
  38. package/build/lib/utils.cjs.map +1 -1
  39. package/build/lib/utils.d.ts +1 -0
  40. package/build/lib/utils.d.ts.map +1 -1
  41. package/build/lib/utils.js +4 -1
  42. package/build/lib/utils.js.map +1 -1
  43. package/build/lib/utils.legacy.cjs +4 -0
  44. package/build/lib/utils.legacy.cjs.map +1 -1
  45. package/build/lib/utils.legacy.js +4 -1
  46. package/build/lib/utils.legacy.js.map +1 -1
  47. package/build/lib/vueQueryPlugin.cjs +1 -3
  48. package/build/lib/vueQueryPlugin.cjs.map +1 -1
  49. package/build/lib/vueQueryPlugin.d.ts.map +1 -1
  50. package/build/lib/vueQueryPlugin.js +2 -4
  51. package/build/lib/vueQueryPlugin.js.map +1 -1
  52. package/build/lib/vueQueryPlugin.legacy.cjs +1 -3
  53. package/build/lib/vueQueryPlugin.legacy.cjs.map +1 -1
  54. package/build/lib/vueQueryPlugin.legacy.js +2 -4
  55. package/build/lib/vueQueryPlugin.legacy.js.map +1 -1
  56. package/package.json +1 -1
  57. package/src/useBaseQuery.ts +10 -10
  58. package/src/useIsFetching.ts +8 -4
  59. package/src/useMutation.ts +8 -4
  60. package/src/useQueries.ts +12 -11
  61. package/src/utils.ts +4 -0
  62. package/src/vueQueryPlugin.ts +2 -4
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var vueDemi = require('vue-demi');
4
+ var queryCore = require('@tanstack/query-core');
4
5
  var useQueryClient = require('./useQueryClient.cjs');
5
6
  var utils = require('./utils.cjs');
6
7
 
@@ -13,16 +14,17 @@ function useBaseQuery(Observer, options, queryClient) {
13
14
  });
14
15
  const observer = new Observer(client, defaultedOptions.value);
15
16
  const state = vueDemi.reactive(observer.getCurrentResult());
16
- const unsubscribe = vueDemi.ref(() => {
17
- // noop
18
- });
17
+ const unsubscribe = vueDemi.ref(utils.noop);
19
18
  vueDemi.watch(client.isRestoring, isRestoring => {
20
19
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
21
20
  if (!isRestoring) {
22
21
  unsubscribe.value();
23
- unsubscribe.value = observer.subscribe(result => {
24
- utils.updateState(state, result);
25
- });
22
+ // Nuxt2 memory leak fix - do not subscribe on server
23
+ if (!queryCore.isServer) {
24
+ unsubscribe.value = observer.subscribe(result => {
25
+ utils.updateState(state, result);
26
+ });
27
+ }
26
28
  }
27
29
  }, {
28
30
  immediate: true
@@ -38,9 +40,7 @@ function useBaseQuery(Observer, options, queryClient) {
38
40
  });
39
41
  const suspense = () => {
40
42
  return new Promise(resolve => {
41
- let stopWatch = () => {
42
- //noop
43
- };
43
+ let stopWatch = utils.noop;
44
44
  const run = () => {
45
45
  if (defaultedOptions.value.enabled !== false) {
46
46
  const optimisticResult = observer.getOptimisticResult(defaultedOptions.value);
@@ -1 +1 @@
1
- {"version":3,"file":"useBaseQuery.cjs","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n onScopeDispose,\n toRefs,\n readonly,\n reactive,\n watch,\n ref,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n QueryObserver,\n QueryKey,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { updateState, cloneDeepUnref } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = ref(() => {\n // noop\n })\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe.value()\n unsubscribe.value = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>((resolve) => {\n let stopWatch = () => {\n //noop\n }\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n resolve(observer.fetchOptimistic(defaultedOptions.value))\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run, { deep: true })\n })\n }\n\n return {\n ...(toRefs(readonly(state)) as ToRefs<\n Readonly<QueryObserverResult<TData, TError>>\n >),\n suspense,\n }\n}\n"],"names":["useBaseQuery","Observer","options","queryClient","client","useQueryClient","defaultedOptions","computed","defaulted","defaultQueryOptions","cloneDeepUnref","_optimisticResults","isRestoring","value","observer","state","reactive","getCurrentResult","unsubscribe","ref","watch","subscribe","result","updateState","immediate","setOptions","deep","onScopeDispose","suspense","Promise","resolve","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","toRefs","readonly"],"mappings":"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"}
1
+ {"version":3,"file":"useBaseQuery.cjs","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n onScopeDispose,\n toRefs,\n readonly,\n reactive,\n watch,\n ref,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n QueryObserver,\n QueryKey,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from '@tanstack/query-core'\nimport { isServer } from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { updateState, cloneDeepUnref, noop } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = ref(noop)\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe.value()\n // Nuxt2 memory leak fix - do not subscribe on server\n if (!isServer) {\n unsubscribe.value = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>((resolve) => {\n let stopWatch = noop\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n resolve(observer.fetchOptimistic(defaultedOptions.value))\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run, { deep: true })\n })\n }\n\n return {\n ...(toRefs(readonly(state)) as ToRefs<\n Readonly<QueryObserverResult<TData, TError>>\n >),\n suspense,\n }\n}\n"],"names":["useBaseQuery","Observer","options","queryClient","client","useQueryClient","defaultedOptions","computed","defaulted","defaultQueryOptions","cloneDeepUnref","_optimisticResults","isRestoring","value","observer","state","reactive","getCurrentResult","unsubscribe","ref","noop","watch","isServer","subscribe","result","updateState","immediate","setOptions","deep","onScopeDispose","suspense","Promise","resolve","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","toRefs","readonly"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useBaseQuery.d.ts","sourceRoot":"","sources":["../../src/useBaseQuery.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,mBAAmB,EAEpB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAEjE,MAAM,MAAM,sBAAsB,CAChC,KAAK,EACL,MAAM,EACN,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,IACzC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG;IAC7B,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAChC,CAAA;AAED,KAAK,sBAAsB,CACzB,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,SAAS,QAAQ,GAAG,QAAQ,EACrC,UAAU,GAAG,OAAO,IAElB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,GACnE,uBAAuB,CACrB,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,UAAU,CACX,CAAA;AAEL,wBAAgB,YAAY,CAC1B,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,SAAS,QAAQ,EAC1B,UAAU,EAEV,QAAQ,EAAE,OAAO,aAAa,EAC9B,OAAO,EAAE,sBAAsB,CAC7B,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,UAAU,CACX,EACD,WAAW,CAAC,EAAE,WAAW,GACxB,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAqFvC"}
1
+ {"version":3,"file":"useBaseQuery.d.ts","sourceRoot":"","sources":["../../src/useBaseQuery.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,mBAAmB,EAEpB,MAAM,sBAAsB,CAAA;AAI7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAEjE,MAAM,MAAM,sBAAsB,CAChC,KAAK,EACL,MAAM,EACN,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,IACzC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG;IAC7B,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAChC,CAAA;AAED,KAAK,sBAAsB,CACzB,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,SAAS,QAAQ,GAAG,QAAQ,EACrC,UAAU,GAAG,OAAO,IAElB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,GACnE,uBAAuB,CACrB,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,UAAU,CACX,CAAA;AAEL,wBAAgB,YAAY,CAC1B,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,SAAS,QAAQ,EAC1B,UAAU,EAEV,QAAQ,EAAE,OAAO,aAAa,EAC9B,OAAO,EAAE,sBAAsB,CAC7B,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,UAAU,CACX,EACD,WAAW,CAAC,EAAE,WAAW,GACxB,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAoFvC"}
@@ -1,6 +1,7 @@
1
1
  import { computed, reactive, ref, watch, onScopeDispose, toRefs, readonly } from 'vue-demi';
2
+ import { isServer } from '@tanstack/query-core';
2
3
  import { useQueryClient } from './useQueryClient.js';
3
- import { cloneDeepUnref, updateState } from './utils.js';
4
+ import { cloneDeepUnref, noop, updateState } from './utils.js';
4
5
 
5
6
  function useBaseQuery(Observer, options, queryClient) {
6
7
  const client = queryClient || useQueryClient();
@@ -11,16 +12,17 @@ function useBaseQuery(Observer, options, queryClient) {
11
12
  });
12
13
  const observer = new Observer(client, defaultedOptions.value);
13
14
  const state = reactive(observer.getCurrentResult());
14
- const unsubscribe = ref(() => {
15
- // noop
16
- });
15
+ const unsubscribe = ref(noop);
17
16
  watch(client.isRestoring, isRestoring => {
18
17
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
19
18
  if (!isRestoring) {
20
19
  unsubscribe.value();
21
- unsubscribe.value = observer.subscribe(result => {
22
- updateState(state, result);
23
- });
20
+ // Nuxt2 memory leak fix - do not subscribe on server
21
+ if (!isServer) {
22
+ unsubscribe.value = observer.subscribe(result => {
23
+ updateState(state, result);
24
+ });
25
+ }
24
26
  }
25
27
  }, {
26
28
  immediate: true
@@ -36,9 +38,7 @@ function useBaseQuery(Observer, options, queryClient) {
36
38
  });
37
39
  const suspense = () => {
38
40
  return new Promise(resolve => {
39
- let stopWatch = () => {
40
- //noop
41
- };
41
+ let stopWatch = noop;
42
42
  const run = () => {
43
43
  if (defaultedOptions.value.enabled !== false) {
44
44
  const optimisticResult = observer.getOptimisticResult(defaultedOptions.value);
@@ -1 +1 @@
1
- {"version":3,"file":"useBaseQuery.js","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n onScopeDispose,\n toRefs,\n readonly,\n reactive,\n watch,\n ref,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n QueryObserver,\n QueryKey,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { updateState, cloneDeepUnref } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = ref(() => {\n // noop\n })\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe.value()\n unsubscribe.value = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>((resolve) => {\n let stopWatch = () => {\n //noop\n }\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n resolve(observer.fetchOptimistic(defaultedOptions.value))\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run, { deep: true })\n })\n }\n\n return {\n ...(toRefs(readonly(state)) as ToRefs<\n Readonly<QueryObserverResult<TData, TError>>\n >),\n suspense,\n }\n}\n"],"names":["useBaseQuery","Observer","options","queryClient","client","useQueryClient","defaultedOptions","computed","defaulted","defaultQueryOptions","cloneDeepUnref","_optimisticResults","isRestoring","value","observer","state","reactive","getCurrentResult","unsubscribe","ref","watch","subscribe","result","updateState","immediate","setOptions","deep","onScopeDispose","suspense","Promise","resolve","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","toRefs","readonly"],"mappings":"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"}
1
+ {"version":3,"file":"useBaseQuery.js","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n onScopeDispose,\n toRefs,\n readonly,\n reactive,\n watch,\n ref,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n QueryObserver,\n QueryKey,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from '@tanstack/query-core'\nimport { isServer } from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { updateState, cloneDeepUnref, noop } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = ref(noop)\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe.value()\n // Nuxt2 memory leak fix - do not subscribe on server\n if (!isServer) {\n unsubscribe.value = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>((resolve) => {\n let stopWatch = noop\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n resolve(observer.fetchOptimistic(defaultedOptions.value))\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run, { deep: true })\n })\n }\n\n return {\n ...(toRefs(readonly(state)) as ToRefs<\n Readonly<QueryObserverResult<TData, TError>>\n >),\n suspense,\n }\n}\n"],"names":["useBaseQuery","Observer","options","queryClient","client","useQueryClient","defaultedOptions","computed","defaulted","defaultQueryOptions","cloneDeepUnref","_optimisticResults","isRestoring","value","observer","state","reactive","getCurrentResult","unsubscribe","ref","noop","watch","isServer","subscribe","result","updateState","immediate","setOptions","deep","onScopeDispose","suspense","Promise","resolve","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","toRefs","readonly"],"mappings":";;;;;AAiDO,SAASA,YAAYA,CAQ1BC,QAA8B,EAC9BC,OAOC,EACDC,WAAyB,EACc;AACvC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,cAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,QAAQ,CAAC,MAAM;IACtC,MAAMC,SAML,GAAGJ,MAAM,CAACK,mBAAmB,CAACC,cAAc,CAACR,OAAc,CAAC,CAAC,CAAA;IAE9DM,SAAS,CAACG,kBAAkB,GAAGP,MAAM,CAACQ,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOL,SAAS,CAAA;AAClB,GAAC,CAAC,CAAA;EAEF,MAAMM,QAAQ,GAAG,IAAIb,QAAQ,CAACG,MAAM,EAAEE,gBAAgB,CAACO,KAAK,CAAC,CAAA;EAC7D,MAAME,KAAK,GAAGC,QAAQ,CAACF,QAAQ,CAACG,gBAAgB,EAAE,CAAC,CAAA;AAEnD,EAAA,MAAMC,WAAW,GAAGC,GAAG,CAACC,IAAI,CAAC,CAAA;AAE7BC,EAAAA,KAAK,CACHjB,MAAM,CAACQ,WAAW,EACjBA,WAAW,IAAK;AACf;IACA,IAAI,CAACA,WAAW,EAAE;MAChBM,WAAW,CAACL,KAAK,EAAE,CAAA;AACnB;MACA,IAAI,CAACS,QAAQ,EAAE;QACbJ,WAAW,CAACL,KAAK,GAAGC,QAAQ,CAACS,SAAS,CAAEC,MAAM,IAAK;AACjDC,UAAAA,WAAW,CAACV,KAAK,EAAES,MAAM,CAAC,CAAA;AAC5B,SAAC,CAAC,CAAA;AACJ,OAAA;AACF,KAAA;AACF,GAAC,EACD;AAAEE,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;EAEDL,KAAK,CACHf,gBAAgB,EAChB,MAAM;AACJQ,IAAAA,QAAQ,CAACa,UAAU,CAACrB,gBAAgB,CAACO,KAAK,CAAC,CAAA;IAC3CY,WAAW,CAACV,KAAK,EAAED,QAAQ,CAACG,gBAAgB,EAAE,CAAC,CAAA;AACjD,GAAC,EACD;AAAEW,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,cAAc,CAAC,MAAM;IACnBX,WAAW,CAACL,KAAK,EAAE,CAAA;AACrB,GAAC,CAAC,CAAA;EAEF,MAAMiB,QAAQ,GAAGA,MAAM;AACrB,IAAA,OAAO,IAAIC,OAAO,CAAsCC,OAAO,IAAK;MAClE,IAAIC,SAAS,GAAGb,IAAI,CAAA;MACpB,MAAMc,GAAG,GAAGA,MAAM;AAChB,QAAA,IAAI5B,gBAAgB,CAACO,KAAK,CAACsB,OAAO,KAAK,KAAK,EAAE;UAC5C,MAAMC,gBAAgB,GAAGtB,QAAQ,CAACuB,mBAAmB,CACnD/B,gBAAgB,CAACO,KACnB,CAAC,CAAA;UACD,IAAIuB,gBAAgB,CAACE,OAAO,EAAE;AAC5BL,YAAAA,SAAS,EAAE,CAAA;YACXD,OAAO,CAAClB,QAAQ,CAACyB,eAAe,CAACjC,gBAAgB,CAACO,KAAK,CAAC,CAAC,CAAA;AAC3D,WAAC,MAAM;AACLoB,YAAAA,SAAS,EAAE,CAAA;YACXD,OAAO,CAACI,gBAAgB,CAAC,CAAA;AAC3B,WAAA;AACF,SAAA;OACD,CAAA;AAEDF,MAAAA,GAAG,EAAE,CAAA;AAELD,MAAAA,SAAS,GAAGZ,KAAK,CAACf,gBAAgB,EAAE4B,GAAG,EAAE;AAAEN,QAAAA,IAAI,EAAE,IAAA;AAAK,OAAC,CAAC,CAAA;AAC1D,KAAC,CAAC,CAAA;GACH,CAAA;EAED,OAAO;AACL,IAAA,GAAIY,MAAM,CAACC,QAAQ,CAAC1B,KAAK,CAAC,CAExB;AACFe,IAAAA,QAAAA;GACD,CAAA;AACH;;;;"}
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var vueDemi = require('vue-demi');
4
+ var queryCore = require('@tanstack/query-core');
4
5
  var useQueryClient = require('./useQueryClient.legacy.cjs');
5
6
  var utils = require('./utils.legacy.cjs');
6
7
 
@@ -13,16 +14,17 @@ function useBaseQuery(Observer, options, queryClient) {
13
14
  });
14
15
  const observer = new Observer(client, defaultedOptions.value);
15
16
  const state = vueDemi.reactive(observer.getCurrentResult());
16
- const unsubscribe = vueDemi.ref(() => {
17
- // noop
18
- });
17
+ const unsubscribe = vueDemi.ref(utils.noop);
19
18
  vueDemi.watch(client.isRestoring, isRestoring => {
20
19
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
21
20
  if (!isRestoring) {
22
21
  unsubscribe.value();
23
- unsubscribe.value = observer.subscribe(result => {
24
- utils.updateState(state, result);
25
- });
22
+ // Nuxt2 memory leak fix - do not subscribe on server
23
+ if (!queryCore.isServer) {
24
+ unsubscribe.value = observer.subscribe(result => {
25
+ utils.updateState(state, result);
26
+ });
27
+ }
26
28
  }
27
29
  }, {
28
30
  immediate: true
@@ -38,9 +40,7 @@ function useBaseQuery(Observer, options, queryClient) {
38
40
  });
39
41
  const suspense = () => {
40
42
  return new Promise(resolve => {
41
- let stopWatch = () => {
42
- //noop
43
- };
43
+ let stopWatch = utils.noop;
44
44
  const run = () => {
45
45
  if (defaultedOptions.value.enabled !== false) {
46
46
  const optimisticResult = observer.getOptimisticResult(defaultedOptions.value);
@@ -1 +1 @@
1
- {"version":3,"file":"useBaseQuery.legacy.cjs","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n onScopeDispose,\n toRefs,\n readonly,\n reactive,\n watch,\n ref,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n QueryObserver,\n QueryKey,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { updateState, cloneDeepUnref } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = ref(() => {\n // noop\n })\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe.value()\n unsubscribe.value = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>((resolve) => {\n let stopWatch = () => {\n //noop\n }\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n resolve(observer.fetchOptimistic(defaultedOptions.value))\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run, { deep: true })\n })\n }\n\n return {\n ...(toRefs(readonly(state)) as ToRefs<\n Readonly<QueryObserverResult<TData, TError>>\n >),\n suspense,\n }\n}\n"],"names":["useBaseQuery","Observer","options","queryClient","client","useQueryClient","defaultedOptions","computed","defaulted","defaultQueryOptions","cloneDeepUnref","_optimisticResults","isRestoring","value","observer","state","reactive","getCurrentResult","unsubscribe","ref","watch","subscribe","result","updateState","immediate","setOptions","deep","onScopeDispose","suspense","Promise","resolve","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","toRefs","readonly"],"mappings":";;;;;;AAgDO,SAASA,YAAYA,CAQ1BC,QAA8B,EAC9BC,OAOC,EACDC,WAAyB,EACc;AACvC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,6BAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,gBAAQ,CAAC,MAAM;IACtC,MAAMC,SAML,GAAGJ,MAAM,CAACK,mBAAmB,CAACC,oBAAc,CAACR,OAAc,CAAC,CAAC,CAAA;IAE9DM,SAAS,CAACG,kBAAkB,GAAGP,MAAM,CAACQ,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOL,SAAS,CAAA;AAClB,GAAC,CAAC,CAAA;EAEF,MAAMM,QAAQ,GAAG,IAAIb,QAAQ,CAACG,MAAM,EAAEE,gBAAgB,CAACO,KAAK,CAAC,CAAA;EAC7D,MAAME,KAAK,GAAGC,gBAAQ,CAACF,QAAQ,CAACG,gBAAgB,EAAE,CAAC,CAAA;AAEnD,EAAA,MAAMC,WAAW,GAAGC,WAAG,CAAC,MAAM;AAC5B;AAAA,GACD,CAAC,CAAA;AAEFC,EAAAA,aAAK,CACHhB,MAAM,CAACQ,WAAW,EACjBA,WAAW,IAAK;AACf;IACA,IAAI,CAACA,WAAW,EAAE;MAChBM,WAAW,CAACL,KAAK,EAAE,CAAA;MACnBK,WAAW,CAACL,KAAK,GAAGC,QAAQ,CAACO,SAAS,CAAEC,MAAM,IAAK;AACjDC,QAAAA,iBAAW,CAACR,KAAK,EAAEO,MAAM,CAAC,CAAA;AAC5B,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAC,EACD;AAAEE,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;EAEDJ,aAAK,CACHd,gBAAgB,EAChB,MAAM;AACJQ,IAAAA,QAAQ,CAACW,UAAU,CAACnB,gBAAgB,CAACO,KAAK,CAAC,CAAA;IAC3CU,iBAAW,CAACR,KAAK,EAAED,QAAQ,CAACG,gBAAgB,EAAE,CAAC,CAAA;AACjD,GAAC,EACD;AAAES,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,sBAAc,CAAC,MAAM;IACnBT,WAAW,CAACL,KAAK,EAAE,CAAA;AACrB,GAAC,CAAC,CAAA;EAEF,MAAMe,QAAQ,GAAGA,MAAM;AACrB,IAAA,OAAO,IAAIC,OAAO,CAAsCC,OAAO,IAAK;MAClE,IAAIC,SAAS,GAAGA,MAAM;AACpB;OACD,CAAA;MACD,MAAMC,GAAG,GAAGA,MAAM;AAChB,QAAA,IAAI1B,gBAAgB,CAACO,KAAK,CAACoB,OAAO,KAAK,KAAK,EAAE;UAC5C,MAAMC,gBAAgB,GAAGpB,QAAQ,CAACqB,mBAAmB,CACnD7B,gBAAgB,CAACO,KACnB,CAAC,CAAA;UACD,IAAIqB,gBAAgB,CAACE,OAAO,EAAE;AAC5BL,YAAAA,SAAS,EAAE,CAAA;YACXD,OAAO,CAAChB,QAAQ,CAACuB,eAAe,CAAC/B,gBAAgB,CAACO,KAAK,CAAC,CAAC,CAAA;AAC3D,WAAC,MAAM;AACLkB,YAAAA,SAAS,EAAE,CAAA;YACXD,OAAO,CAACI,gBAAgB,CAAC,CAAA;AAC3B,WAAA;AACF,SAAA;OACD,CAAA;AAEDF,MAAAA,GAAG,EAAE,CAAA;AAELD,MAAAA,SAAS,GAAGX,aAAK,CAACd,gBAAgB,EAAE0B,GAAG,EAAE;AAAEN,QAAAA,IAAI,EAAE,IAAA;AAAK,OAAC,CAAC,CAAA;AAC1D,KAAC,CAAC,CAAA;GACH,CAAA;EAED,OAAO;AACL,IAAA,GAAIY,cAAM,CAACC,gBAAQ,CAACxB,KAAK,CAAC,CAExB;AACFa,IAAAA,QAAAA;GACD,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"useBaseQuery.legacy.cjs","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n onScopeDispose,\n toRefs,\n readonly,\n reactive,\n watch,\n ref,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n QueryObserver,\n QueryKey,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from '@tanstack/query-core'\nimport { isServer } from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { updateState, cloneDeepUnref, noop } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = ref(noop)\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe.value()\n // Nuxt2 memory leak fix - do not subscribe on server\n if (!isServer) {\n unsubscribe.value = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>((resolve) => {\n let stopWatch = noop\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n resolve(observer.fetchOptimistic(defaultedOptions.value))\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run, { deep: true })\n })\n }\n\n return {\n ...(toRefs(readonly(state)) as ToRefs<\n Readonly<QueryObserverResult<TData, TError>>\n >),\n suspense,\n }\n}\n"],"names":["useBaseQuery","Observer","options","queryClient","client","useQueryClient","defaultedOptions","computed","defaulted","defaultQueryOptions","cloneDeepUnref","_optimisticResults","isRestoring","value","observer","state","reactive","getCurrentResult","unsubscribe","ref","noop","watch","isServer","subscribe","result","updateState","immediate","setOptions","deep","onScopeDispose","suspense","Promise","resolve","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","toRefs","readonly"],"mappings":";;;;;;;AAiDO,SAASA,YAAYA,CAQ1BC,QAA8B,EAC9BC,OAOC,EACDC,WAAyB,EACc;AACvC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,6BAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,gBAAQ,CAAC,MAAM;IACtC,MAAMC,SAML,GAAGJ,MAAM,CAACK,mBAAmB,CAACC,oBAAc,CAACR,OAAc,CAAC,CAAC,CAAA;IAE9DM,SAAS,CAACG,kBAAkB,GAAGP,MAAM,CAACQ,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOL,SAAS,CAAA;AAClB,GAAC,CAAC,CAAA;EAEF,MAAMM,QAAQ,GAAG,IAAIb,QAAQ,CAACG,MAAM,EAAEE,gBAAgB,CAACO,KAAK,CAAC,CAAA;EAC7D,MAAME,KAAK,GAAGC,gBAAQ,CAACF,QAAQ,CAACG,gBAAgB,EAAE,CAAC,CAAA;AAEnD,EAAA,MAAMC,WAAW,GAAGC,WAAG,CAACC,UAAI,CAAC,CAAA;AAE7BC,EAAAA,aAAK,CACHjB,MAAM,CAACQ,WAAW,EACjBA,WAAW,IAAK;AACf;IACA,IAAI,CAACA,WAAW,EAAE;MAChBM,WAAW,CAACL,KAAK,EAAE,CAAA;AACnB;MACA,IAAI,CAACS,kBAAQ,EAAE;QACbJ,WAAW,CAACL,KAAK,GAAGC,QAAQ,CAACS,SAAS,CAAEC,MAAM,IAAK;AACjDC,UAAAA,iBAAW,CAACV,KAAK,EAAES,MAAM,CAAC,CAAA;AAC5B,SAAC,CAAC,CAAA;AACJ,OAAA;AACF,KAAA;AACF,GAAC,EACD;AAAEE,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;EAEDL,aAAK,CACHf,gBAAgB,EAChB,MAAM;AACJQ,IAAAA,QAAQ,CAACa,UAAU,CAACrB,gBAAgB,CAACO,KAAK,CAAC,CAAA;IAC3CY,iBAAW,CAACV,KAAK,EAAED,QAAQ,CAACG,gBAAgB,EAAE,CAAC,CAAA;AACjD,GAAC,EACD;AAAEW,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,sBAAc,CAAC,MAAM;IACnBX,WAAW,CAACL,KAAK,EAAE,CAAA;AACrB,GAAC,CAAC,CAAA;EAEF,MAAMiB,QAAQ,GAAGA,MAAM;AACrB,IAAA,OAAO,IAAIC,OAAO,CAAsCC,OAAO,IAAK;MAClE,IAAIC,SAAS,GAAGb,UAAI,CAAA;MACpB,MAAMc,GAAG,GAAGA,MAAM;AAChB,QAAA,IAAI5B,gBAAgB,CAACO,KAAK,CAACsB,OAAO,KAAK,KAAK,EAAE;UAC5C,MAAMC,gBAAgB,GAAGtB,QAAQ,CAACuB,mBAAmB,CACnD/B,gBAAgB,CAACO,KACnB,CAAC,CAAA;UACD,IAAIuB,gBAAgB,CAACE,OAAO,EAAE;AAC5BL,YAAAA,SAAS,EAAE,CAAA;YACXD,OAAO,CAAClB,QAAQ,CAACyB,eAAe,CAACjC,gBAAgB,CAACO,KAAK,CAAC,CAAC,CAAA;AAC3D,WAAC,MAAM;AACLoB,YAAAA,SAAS,EAAE,CAAA;YACXD,OAAO,CAACI,gBAAgB,CAAC,CAAA;AAC3B,WAAA;AACF,SAAA;OACD,CAAA;AAEDF,MAAAA,GAAG,EAAE,CAAA;AAELD,MAAAA,SAAS,GAAGZ,aAAK,CAACf,gBAAgB,EAAE4B,GAAG,EAAE;AAAEN,QAAAA,IAAI,EAAE,IAAA;AAAK,OAAC,CAAC,CAAA;AAC1D,KAAC,CAAC,CAAA;GACH,CAAA;EAED,OAAO;AACL,IAAA,GAAIY,cAAM,CAACC,gBAAQ,CAAC1B,KAAK,CAAC,CAExB;AACFe,IAAAA,QAAAA;GACD,CAAA;AACH;;;;"}
@@ -1,6 +1,7 @@
1
1
  import { computed, reactive, ref, watch, onScopeDispose, toRefs, readonly } from 'vue-demi';
2
+ import { isServer } from '@tanstack/query-core';
2
3
  import { useQueryClient } from './useQueryClient.legacy.js';
3
- import { cloneDeepUnref, updateState } from './utils.legacy.js';
4
+ import { cloneDeepUnref, noop, updateState } from './utils.legacy.js';
4
5
 
5
6
  function useBaseQuery(Observer, options, queryClient) {
6
7
  const client = queryClient || useQueryClient();
@@ -11,16 +12,17 @@ function useBaseQuery(Observer, options, queryClient) {
11
12
  });
12
13
  const observer = new Observer(client, defaultedOptions.value);
13
14
  const state = reactive(observer.getCurrentResult());
14
- const unsubscribe = ref(() => {
15
- // noop
16
- });
15
+ const unsubscribe = ref(noop);
17
16
  watch(client.isRestoring, isRestoring => {
18
17
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
19
18
  if (!isRestoring) {
20
19
  unsubscribe.value();
21
- unsubscribe.value = observer.subscribe(result => {
22
- updateState(state, result);
23
- });
20
+ // Nuxt2 memory leak fix - do not subscribe on server
21
+ if (!isServer) {
22
+ unsubscribe.value = observer.subscribe(result => {
23
+ updateState(state, result);
24
+ });
25
+ }
24
26
  }
25
27
  }, {
26
28
  immediate: true
@@ -36,9 +38,7 @@ function useBaseQuery(Observer, options, queryClient) {
36
38
  });
37
39
  const suspense = () => {
38
40
  return new Promise(resolve => {
39
- let stopWatch = () => {
40
- //noop
41
- };
41
+ let stopWatch = noop;
42
42
  const run = () => {
43
43
  if (defaultedOptions.value.enabled !== false) {
44
44
  const optimisticResult = observer.getOptimisticResult(defaultedOptions.value);
@@ -1 +1 @@
1
- {"version":3,"file":"useBaseQuery.legacy.js","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n onScopeDispose,\n toRefs,\n readonly,\n reactive,\n watch,\n ref,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n QueryObserver,\n QueryKey,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { updateState, cloneDeepUnref } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = ref(() => {\n // noop\n })\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe.value()\n unsubscribe.value = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>((resolve) => {\n let stopWatch = () => {\n //noop\n }\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n resolve(observer.fetchOptimistic(defaultedOptions.value))\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run, { deep: true })\n })\n }\n\n return {\n ...(toRefs(readonly(state)) as ToRefs<\n Readonly<QueryObserverResult<TData, TError>>\n >),\n suspense,\n }\n}\n"],"names":["useBaseQuery","Observer","options","queryClient","client","useQueryClient","defaultedOptions","computed","defaulted","defaultQueryOptions","cloneDeepUnref","_optimisticResults","isRestoring","value","observer","state","reactive","getCurrentResult","unsubscribe","ref","watch","subscribe","result","updateState","immediate","setOptions","deep","onScopeDispose","suspense","Promise","resolve","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","toRefs","readonly"],"mappings":"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"}
1
+ {"version":3,"file":"useBaseQuery.legacy.js","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n onScopeDispose,\n toRefs,\n readonly,\n reactive,\n watch,\n ref,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n QueryObserver,\n QueryKey,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from '@tanstack/query-core'\nimport { isServer } from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { updateState, cloneDeepUnref, noop } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = ref(noop)\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe.value()\n // Nuxt2 memory leak fix - do not subscribe on server\n if (!isServer) {\n unsubscribe.value = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>((resolve) => {\n let stopWatch = noop\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n resolve(observer.fetchOptimistic(defaultedOptions.value))\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run, { deep: true })\n })\n }\n\n return {\n ...(toRefs(readonly(state)) as ToRefs<\n Readonly<QueryObserverResult<TData, TError>>\n >),\n suspense,\n }\n}\n"],"names":["useBaseQuery","Observer","options","queryClient","client","useQueryClient","defaultedOptions","computed","defaulted","defaultQueryOptions","cloneDeepUnref","_optimisticResults","isRestoring","value","observer","state","reactive","getCurrentResult","unsubscribe","ref","noop","watch","isServer","subscribe","result","updateState","immediate","setOptions","deep","onScopeDispose","suspense","Promise","resolve","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","toRefs","readonly"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var vueDemi = require('vue-demi');
4
+ var queryCore = require('@tanstack/query-core');
4
5
  var useQueryClient = require('./useQueryClient.cjs');
5
6
  var utils = require('./utils.cjs');
6
7
 
@@ -8,7 +9,9 @@ function useIsFetching(fetchingFilters = {}, queryClient) {
8
9
  const filters = vueDemi.computed(() => utils.cloneDeepUnref(fetchingFilters));
9
10
  const client = queryClient || useQueryClient.useQueryClient();
10
11
  const isFetching = vueDemi.ref(client.isFetching(filters));
11
- const unsubscribe = client.getQueryCache().subscribe(() => {
12
+
13
+ // Nuxt2 memory leak fix - do not subscribe on server
14
+ const unsubscribe = queryCore.isServer ? utils.noop : client.getQueryCache().subscribe(() => {
12
15
  isFetching.value = client.isFetching(filters);
13
16
  });
14
17
  vueDemi.watch(filters, () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useIsFetching.cjs","sources":["../../src/useIsFetching.ts"],"sourcesContent":["import { computed, onScopeDispose, ref, watch } from 'vue-demi'\nimport type { Ref } from 'vue-demi'\nimport type { QueryFilters as QF } from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { MaybeRefDeep } from './types'\nimport type { QueryClient } from './queryClient'\n\nexport type QueryFilters = MaybeRefDeep<QF>\n\nexport function useIsFetching(\n fetchingFilters: MaybeRefDeep<QF> = {},\n queryClient?: QueryClient,\n): Ref<number> {\n const filters = computed(() => cloneDeepUnref(fetchingFilters))\n const client = queryClient || useQueryClient()\n\n const isFetching = ref(client.isFetching(filters))\n\n const unsubscribe = client.getQueryCache().subscribe(() => {\n isFetching.value = client.isFetching(filters)\n })\n\n watch(\n filters,\n () => {\n isFetching.value = client.isFetching(filters)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return isFetching\n}\n"],"names":["useIsFetching","fetchingFilters","queryClient","filters","computed","cloneDeepUnref","client","useQueryClient","isFetching","ref","unsubscribe","getQueryCache","subscribe","value","watch","deep","onScopeDispose"],"mappings":";;;;;;AAUO,SAASA,aAAaA,CAC3BC,eAAiC,GAAG,EAAE,EACtCC,WAAyB,EACZ;EACb,MAAMC,OAAO,GAAGC,gBAAQ,CAAC,MAAMC,oBAAc,CAACJ,eAAe,CAAC,CAAC,CAAA;AAC/D,EAAA,MAAMK,MAAM,GAAGJ,WAAW,IAAIK,6BAAc,EAAE,CAAA;EAE9C,MAAMC,UAAU,GAAGC,WAAG,CAACH,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAC,CAAA;EAElD,MAAMO,WAAW,GAAGJ,MAAM,CAACK,aAAa,EAAE,CAACC,SAAS,CAAC,MAAM;IACzDJ,UAAU,CAACK,KAAK,GAAGP,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAA;AAC/C,GAAC,CAAC,CAAA;EAEFW,aAAK,CACHX,OAAO,EACP,MAAM;IACJK,UAAU,CAACK,KAAK,GAAGP,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAA;AAC/C,GAAC,EACD;AAAEY,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,sBAAc,CAAC,MAAM;AACnBN,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOF,UAAU,CAAA;AACnB;;;;"}
1
+ {"version":3,"file":"useIsFetching.cjs","sources":["../../src/useIsFetching.ts"],"sourcesContent":["import { computed, onScopeDispose, ref, watch } from 'vue-demi'\nimport type { Ref } from 'vue-demi'\nimport type { QueryFilters as QF } from '@tanstack/query-core'\nimport { isServer } from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, noop } from './utils'\nimport type { MaybeRefDeep } from './types'\nimport type { QueryClient } from './queryClient'\n\nexport type QueryFilters = MaybeRefDeep<QF>\n\nexport function useIsFetching(\n fetchingFilters: MaybeRefDeep<QF> = {},\n queryClient?: QueryClient,\n): Ref<number> {\n const filters = computed(() => cloneDeepUnref(fetchingFilters))\n const client = queryClient || useQueryClient()\n\n const isFetching = ref(client.isFetching(filters))\n\n // Nuxt2 memory leak fix - do not subscribe on server\n const unsubscribe = isServer\n ? noop\n : client.getQueryCache().subscribe(() => {\n isFetching.value = client.isFetching(filters)\n })\n\n watch(\n filters,\n () => {\n isFetching.value = client.isFetching(filters)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return isFetching\n}\n"],"names":["useIsFetching","fetchingFilters","queryClient","filters","computed","cloneDeepUnref","client","useQueryClient","isFetching","ref","unsubscribe","isServer","noop","getQueryCache","subscribe","value","watch","deep","onScopeDispose"],"mappings":";;;;;;;AAWO,SAASA,aAAaA,CAC3BC,eAAiC,GAAG,EAAE,EACtCC,WAAyB,EACZ;EACb,MAAMC,OAAO,GAAGC,gBAAQ,CAAC,MAAMC,oBAAc,CAACJ,eAAe,CAAC,CAAC,CAAA;AAC/D,EAAA,MAAMK,MAAM,GAAGJ,WAAW,IAAIK,6BAAc,EAAE,CAAA;EAE9C,MAAMC,UAAU,GAAGC,WAAG,CAACH,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAC,CAAA;;AAElD;AACA,EAAA,MAAMO,WAAW,GAAGC,kBAAQ,GACxBC,UAAI,GACJN,MAAM,CAACO,aAAa,EAAE,CAACC,SAAS,CAAC,MAAM;IACrCN,UAAU,CAACO,KAAK,GAAGT,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAA;AAC/C,GAAC,CAAC,CAAA;EAENa,aAAK,CACHb,OAAO,EACP,MAAM;IACJK,UAAU,CAACO,KAAK,GAAGT,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAA;AAC/C,GAAC,EACD;AAAEc,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,sBAAc,CAAC,MAAM;AACnBR,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOF,UAAU,CAAA;AACnB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useIsFetching.d.ts","sourceRoot":"","sources":["../../src/useIsFetching.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,EAAE,YAAY,IAAI,EAAE,EAAE,MAAM,sBAAsB,CAAA;AAG9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;AAE3C,wBAAgB,aAAa,CAC3B,eAAe,GAAE,YAAY,CAAC,EAAE,CAAM,EACtC,WAAW,CAAC,EAAE,WAAW,GACxB,GAAG,CAAC,MAAM,CAAC,CAuBb"}
1
+ {"version":3,"file":"useIsFetching.d.ts","sourceRoot":"","sources":["../../src/useIsFetching.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,EAAE,YAAY,IAAI,EAAE,EAAE,MAAM,sBAAsB,CAAA;AAI9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;AAE3C,wBAAgB,aAAa,CAC3B,eAAe,GAAE,YAAY,CAAC,EAAE,CAAM,EACtC,WAAW,CAAC,EAAE,WAAW,GACxB,GAAG,CAAC,MAAM,CAAC,CA0Bb"}
@@ -1,12 +1,15 @@
1
1
  import { computed, ref, watch, onScopeDispose } from 'vue-demi';
2
+ import { isServer } from '@tanstack/query-core';
2
3
  import { useQueryClient } from './useQueryClient.js';
3
- import { cloneDeepUnref } from './utils.js';
4
+ import { cloneDeepUnref, noop } from './utils.js';
4
5
 
5
6
  function useIsFetching(fetchingFilters = {}, queryClient) {
6
7
  const filters = computed(() => cloneDeepUnref(fetchingFilters));
7
8
  const client = queryClient || useQueryClient();
8
9
  const isFetching = ref(client.isFetching(filters));
9
- const unsubscribe = client.getQueryCache().subscribe(() => {
10
+
11
+ // Nuxt2 memory leak fix - do not subscribe on server
12
+ const unsubscribe = isServer ? noop : client.getQueryCache().subscribe(() => {
10
13
  isFetching.value = client.isFetching(filters);
11
14
  });
12
15
  watch(filters, () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useIsFetching.js","sources":["../../src/useIsFetching.ts"],"sourcesContent":["import { computed, onScopeDispose, ref, watch } from 'vue-demi'\nimport type { Ref } from 'vue-demi'\nimport type { QueryFilters as QF } from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { MaybeRefDeep } from './types'\nimport type { QueryClient } from './queryClient'\n\nexport type QueryFilters = MaybeRefDeep<QF>\n\nexport function useIsFetching(\n fetchingFilters: MaybeRefDeep<QF> = {},\n queryClient?: QueryClient,\n): Ref<number> {\n const filters = computed(() => cloneDeepUnref(fetchingFilters))\n const client = queryClient || useQueryClient()\n\n const isFetching = ref(client.isFetching(filters))\n\n const unsubscribe = client.getQueryCache().subscribe(() => {\n isFetching.value = client.isFetching(filters)\n })\n\n watch(\n filters,\n () => {\n isFetching.value = client.isFetching(filters)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return isFetching\n}\n"],"names":["useIsFetching","fetchingFilters","queryClient","filters","computed","cloneDeepUnref","client","useQueryClient","isFetching","ref","unsubscribe","getQueryCache","subscribe","value","watch","deep","onScopeDispose"],"mappings":";;;;AAUO,SAASA,aAAaA,CAC3BC,eAAiC,GAAG,EAAE,EACtCC,WAAyB,EACZ;EACb,MAAMC,OAAO,GAAGC,QAAQ,CAAC,MAAMC,cAAc,CAACJ,eAAe,CAAC,CAAC,CAAA;AAC/D,EAAA,MAAMK,MAAM,GAAGJ,WAAW,IAAIK,cAAc,EAAE,CAAA;EAE9C,MAAMC,UAAU,GAAGC,GAAG,CAACH,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAC,CAAA;EAElD,MAAMO,WAAW,GAAGJ,MAAM,CAACK,aAAa,EAAE,CAACC,SAAS,CAAC,MAAM;IACzDJ,UAAU,CAACK,KAAK,GAAGP,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAA;AAC/C,GAAC,CAAC,CAAA;EAEFW,KAAK,CACHX,OAAO,EACP,MAAM;IACJK,UAAU,CAACK,KAAK,GAAGP,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAA;AAC/C,GAAC,EACD;AAAEY,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,cAAc,CAAC,MAAM;AACnBN,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOF,UAAU,CAAA;AACnB;;;;"}
1
+ {"version":3,"file":"useIsFetching.js","sources":["../../src/useIsFetching.ts"],"sourcesContent":["import { computed, onScopeDispose, ref, watch } from 'vue-demi'\nimport type { Ref } from 'vue-demi'\nimport type { QueryFilters as QF } from '@tanstack/query-core'\nimport { isServer } from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, noop } from './utils'\nimport type { MaybeRefDeep } from './types'\nimport type { QueryClient } from './queryClient'\n\nexport type QueryFilters = MaybeRefDeep<QF>\n\nexport function useIsFetching(\n fetchingFilters: MaybeRefDeep<QF> = {},\n queryClient?: QueryClient,\n): Ref<number> {\n const filters = computed(() => cloneDeepUnref(fetchingFilters))\n const client = queryClient || useQueryClient()\n\n const isFetching = ref(client.isFetching(filters))\n\n // Nuxt2 memory leak fix - do not subscribe on server\n const unsubscribe = isServer\n ? noop\n : client.getQueryCache().subscribe(() => {\n isFetching.value = client.isFetching(filters)\n })\n\n watch(\n filters,\n () => {\n isFetching.value = client.isFetching(filters)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return isFetching\n}\n"],"names":["useIsFetching","fetchingFilters","queryClient","filters","computed","cloneDeepUnref","client","useQueryClient","isFetching","ref","unsubscribe","isServer","noop","getQueryCache","subscribe","value","watch","deep","onScopeDispose"],"mappings":";;;;;AAWO,SAASA,aAAaA,CAC3BC,eAAiC,GAAG,EAAE,EACtCC,WAAyB,EACZ;EACb,MAAMC,OAAO,GAAGC,QAAQ,CAAC,MAAMC,cAAc,CAACJ,eAAe,CAAC,CAAC,CAAA;AAC/D,EAAA,MAAMK,MAAM,GAAGJ,WAAW,IAAIK,cAAc,EAAE,CAAA;EAE9C,MAAMC,UAAU,GAAGC,GAAG,CAACH,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAC,CAAA;;AAElD;AACA,EAAA,MAAMO,WAAW,GAAGC,QAAQ,GACxBC,IAAI,GACJN,MAAM,CAACO,aAAa,EAAE,CAACC,SAAS,CAAC,MAAM;IACrCN,UAAU,CAACO,KAAK,GAAGT,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAA;AAC/C,GAAC,CAAC,CAAA;EAENa,KAAK,CACHb,OAAO,EACP,MAAM;IACJK,UAAU,CAACO,KAAK,GAAGT,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAA;AAC/C,GAAC,EACD;AAAEc,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,cAAc,CAAC,MAAM;AACnBR,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOF,UAAU,CAAA;AACnB;;;;"}
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var vueDemi = require('vue-demi');
4
+ var queryCore = require('@tanstack/query-core');
4
5
  var useQueryClient = require('./useQueryClient.legacy.cjs');
5
6
  var utils = require('./utils.legacy.cjs');
6
7
 
@@ -8,7 +9,9 @@ function useIsFetching(fetchingFilters = {}, queryClient) {
8
9
  const filters = vueDemi.computed(() => utils.cloneDeepUnref(fetchingFilters));
9
10
  const client = queryClient || useQueryClient.useQueryClient();
10
11
  const isFetching = vueDemi.ref(client.isFetching(filters));
11
- const unsubscribe = client.getQueryCache().subscribe(() => {
12
+
13
+ // Nuxt2 memory leak fix - do not subscribe on server
14
+ const unsubscribe = queryCore.isServer ? utils.noop : client.getQueryCache().subscribe(() => {
12
15
  isFetching.value = client.isFetching(filters);
13
16
  });
14
17
  vueDemi.watch(filters, () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useIsFetching.legacy.cjs","sources":["../../src/useIsFetching.ts"],"sourcesContent":["import { computed, onScopeDispose, ref, watch } from 'vue-demi'\nimport type { Ref } from 'vue-demi'\nimport type { QueryFilters as QF } from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { MaybeRefDeep } from './types'\nimport type { QueryClient } from './queryClient'\n\nexport type QueryFilters = MaybeRefDeep<QF>\n\nexport function useIsFetching(\n fetchingFilters: MaybeRefDeep<QF> = {},\n queryClient?: QueryClient,\n): Ref<number> {\n const filters = computed(() => cloneDeepUnref(fetchingFilters))\n const client = queryClient || useQueryClient()\n\n const isFetching = ref(client.isFetching(filters))\n\n const unsubscribe = client.getQueryCache().subscribe(() => {\n isFetching.value = client.isFetching(filters)\n })\n\n watch(\n filters,\n () => {\n isFetching.value = client.isFetching(filters)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return isFetching\n}\n"],"names":["useIsFetching","fetchingFilters","queryClient","filters","computed","cloneDeepUnref","client","useQueryClient","isFetching","ref","unsubscribe","getQueryCache","subscribe","value","watch","deep","onScopeDispose"],"mappings":";;;;;;AAUO,SAASA,aAAaA,CAC3BC,eAAiC,GAAG,EAAE,EACtCC,WAAyB,EACZ;EACb,MAAMC,OAAO,GAAGC,gBAAQ,CAAC,MAAMC,oBAAc,CAACJ,eAAe,CAAC,CAAC,CAAA;AAC/D,EAAA,MAAMK,MAAM,GAAGJ,WAAW,IAAIK,6BAAc,EAAE,CAAA;EAE9C,MAAMC,UAAU,GAAGC,WAAG,CAACH,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAC,CAAA;EAElD,MAAMO,WAAW,GAAGJ,MAAM,CAACK,aAAa,EAAE,CAACC,SAAS,CAAC,MAAM;IACzDJ,UAAU,CAACK,KAAK,GAAGP,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAA;AAC/C,GAAC,CAAC,CAAA;EAEFW,aAAK,CACHX,OAAO,EACP,MAAM;IACJK,UAAU,CAACK,KAAK,GAAGP,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAA;AAC/C,GAAC,EACD;AAAEY,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,sBAAc,CAAC,MAAM;AACnBN,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOF,UAAU,CAAA;AACnB;;;;"}
1
+ {"version":3,"file":"useIsFetching.legacy.cjs","sources":["../../src/useIsFetching.ts"],"sourcesContent":["import { computed, onScopeDispose, ref, watch } from 'vue-demi'\nimport type { Ref } from 'vue-demi'\nimport type { QueryFilters as QF } from '@tanstack/query-core'\nimport { isServer } from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, noop } from './utils'\nimport type { MaybeRefDeep } from './types'\nimport type { QueryClient } from './queryClient'\n\nexport type QueryFilters = MaybeRefDeep<QF>\n\nexport function useIsFetching(\n fetchingFilters: MaybeRefDeep<QF> = {},\n queryClient?: QueryClient,\n): Ref<number> {\n const filters = computed(() => cloneDeepUnref(fetchingFilters))\n const client = queryClient || useQueryClient()\n\n const isFetching = ref(client.isFetching(filters))\n\n // Nuxt2 memory leak fix - do not subscribe on server\n const unsubscribe = isServer\n ? noop\n : client.getQueryCache().subscribe(() => {\n isFetching.value = client.isFetching(filters)\n })\n\n watch(\n filters,\n () => {\n isFetching.value = client.isFetching(filters)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return isFetching\n}\n"],"names":["useIsFetching","fetchingFilters","queryClient","filters","computed","cloneDeepUnref","client","useQueryClient","isFetching","ref","unsubscribe","isServer","noop","getQueryCache","subscribe","value","watch","deep","onScopeDispose"],"mappings":";;;;;;;AAWO,SAASA,aAAaA,CAC3BC,eAAiC,GAAG,EAAE,EACtCC,WAAyB,EACZ;EACb,MAAMC,OAAO,GAAGC,gBAAQ,CAAC,MAAMC,oBAAc,CAACJ,eAAe,CAAC,CAAC,CAAA;AAC/D,EAAA,MAAMK,MAAM,GAAGJ,WAAW,IAAIK,6BAAc,EAAE,CAAA;EAE9C,MAAMC,UAAU,GAAGC,WAAG,CAACH,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAC,CAAA;;AAElD;AACA,EAAA,MAAMO,WAAW,GAAGC,kBAAQ,GACxBC,UAAI,GACJN,MAAM,CAACO,aAAa,EAAE,CAACC,SAAS,CAAC,MAAM;IACrCN,UAAU,CAACO,KAAK,GAAGT,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAA;AAC/C,GAAC,CAAC,CAAA;EAENa,aAAK,CACHb,OAAO,EACP,MAAM;IACJK,UAAU,CAACO,KAAK,GAAGT,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAA;AAC/C,GAAC,EACD;AAAEc,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,sBAAc,CAAC,MAAM;AACnBR,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOF,UAAU,CAAA;AACnB;;;;"}
@@ -1,12 +1,15 @@
1
1
  import { computed, ref, watch, onScopeDispose } from 'vue-demi';
2
+ import { isServer } from '@tanstack/query-core';
2
3
  import { useQueryClient } from './useQueryClient.legacy.js';
3
- import { cloneDeepUnref } from './utils.legacy.js';
4
+ import { cloneDeepUnref, noop } from './utils.legacy.js';
4
5
 
5
6
  function useIsFetching(fetchingFilters = {}, queryClient) {
6
7
  const filters = computed(() => cloneDeepUnref(fetchingFilters));
7
8
  const client = queryClient || useQueryClient();
8
9
  const isFetching = ref(client.isFetching(filters));
9
- const unsubscribe = client.getQueryCache().subscribe(() => {
10
+
11
+ // Nuxt2 memory leak fix - do not subscribe on server
12
+ const unsubscribe = isServer ? noop : client.getQueryCache().subscribe(() => {
10
13
  isFetching.value = client.isFetching(filters);
11
14
  });
12
15
  watch(filters, () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useIsFetching.legacy.js","sources":["../../src/useIsFetching.ts"],"sourcesContent":["import { computed, onScopeDispose, ref, watch } from 'vue-demi'\nimport type { Ref } from 'vue-demi'\nimport type { QueryFilters as QF } from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { MaybeRefDeep } from './types'\nimport type { QueryClient } from './queryClient'\n\nexport type QueryFilters = MaybeRefDeep<QF>\n\nexport function useIsFetching(\n fetchingFilters: MaybeRefDeep<QF> = {},\n queryClient?: QueryClient,\n): Ref<number> {\n const filters = computed(() => cloneDeepUnref(fetchingFilters))\n const client = queryClient || useQueryClient()\n\n const isFetching = ref(client.isFetching(filters))\n\n const unsubscribe = client.getQueryCache().subscribe(() => {\n isFetching.value = client.isFetching(filters)\n })\n\n watch(\n filters,\n () => {\n isFetching.value = client.isFetching(filters)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return isFetching\n}\n"],"names":["useIsFetching","fetchingFilters","queryClient","filters","computed","cloneDeepUnref","client","useQueryClient","isFetching","ref","unsubscribe","getQueryCache","subscribe","value","watch","deep","onScopeDispose"],"mappings":";;;;AAUO,SAASA,aAAaA,CAC3BC,eAAiC,GAAG,EAAE,EACtCC,WAAyB,EACZ;EACb,MAAMC,OAAO,GAAGC,QAAQ,CAAC,MAAMC,cAAc,CAACJ,eAAe,CAAC,CAAC,CAAA;AAC/D,EAAA,MAAMK,MAAM,GAAGJ,WAAW,IAAIK,cAAc,EAAE,CAAA;EAE9C,MAAMC,UAAU,GAAGC,GAAG,CAACH,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAC,CAAA;EAElD,MAAMO,WAAW,GAAGJ,MAAM,CAACK,aAAa,EAAE,CAACC,SAAS,CAAC,MAAM;IACzDJ,UAAU,CAACK,KAAK,GAAGP,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAA;AAC/C,GAAC,CAAC,CAAA;EAEFW,KAAK,CACHX,OAAO,EACP,MAAM;IACJK,UAAU,CAACK,KAAK,GAAGP,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAA;AAC/C,GAAC,EACD;AAAEY,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,cAAc,CAAC,MAAM;AACnBN,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOF,UAAU,CAAA;AACnB;;;;"}
1
+ {"version":3,"file":"useIsFetching.legacy.js","sources":["../../src/useIsFetching.ts"],"sourcesContent":["import { computed, onScopeDispose, ref, watch } from 'vue-demi'\nimport type { Ref } from 'vue-demi'\nimport type { QueryFilters as QF } from '@tanstack/query-core'\nimport { isServer } from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, noop } from './utils'\nimport type { MaybeRefDeep } from './types'\nimport type { QueryClient } from './queryClient'\n\nexport type QueryFilters = MaybeRefDeep<QF>\n\nexport function useIsFetching(\n fetchingFilters: MaybeRefDeep<QF> = {},\n queryClient?: QueryClient,\n): Ref<number> {\n const filters = computed(() => cloneDeepUnref(fetchingFilters))\n const client = queryClient || useQueryClient()\n\n const isFetching = ref(client.isFetching(filters))\n\n // Nuxt2 memory leak fix - do not subscribe on server\n const unsubscribe = isServer\n ? noop\n : client.getQueryCache().subscribe(() => {\n isFetching.value = client.isFetching(filters)\n })\n\n watch(\n filters,\n () => {\n isFetching.value = client.isFetching(filters)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return isFetching\n}\n"],"names":["useIsFetching","fetchingFilters","queryClient","filters","computed","cloneDeepUnref","client","useQueryClient","isFetching","ref","unsubscribe","isServer","noop","getQueryCache","subscribe","value","watch","deep","onScopeDispose"],"mappings":";;;;;AAWO,SAASA,aAAaA,CAC3BC,eAAiC,GAAG,EAAE,EACtCC,WAAyB,EACZ;EACb,MAAMC,OAAO,GAAGC,QAAQ,CAAC,MAAMC,cAAc,CAACJ,eAAe,CAAC,CAAC,CAAA;AAC/D,EAAA,MAAMK,MAAM,GAAGJ,WAAW,IAAIK,cAAc,EAAE,CAAA;EAE9C,MAAMC,UAAU,GAAGC,GAAG,CAACH,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAC,CAAA;;AAElD;AACA,EAAA,MAAMO,WAAW,GAAGC,QAAQ,GACxBC,IAAI,GACJN,MAAM,CAACO,aAAa,EAAE,CAACC,SAAS,CAAC,MAAM;IACrCN,UAAU,CAACO,KAAK,GAAGT,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAA;AAC/C,GAAC,CAAC,CAAA;EAENa,KAAK,CACHb,OAAO,EACP,MAAM;IACJK,UAAU,CAACO,KAAK,GAAGT,MAAM,CAACE,UAAU,CAACL,OAAO,CAAC,CAAA;AAC/C,GAAC,EACD;AAAEc,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,cAAc,CAAC,MAAM;AACnBR,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOF,UAAU,CAAA;AACnB;;;;"}
@@ -12,7 +12,9 @@ function useMutation(mutationOptions, queryClient) {
12
12
  });
13
13
  const observer = new queryCore.MutationObserver(client, options.value);
14
14
  const state = vueDemi.reactive(observer.getCurrentResult());
15
- const unsubscribe = observer.subscribe(result => {
15
+
16
+ // Nuxt2 memory leak fix - do not subscribe on server
17
+ const unsubscribe = queryCore.isServer ? utils.noop : observer.subscribe(result => {
16
18
  utils.updateState(state, result);
17
19
  });
18
20
  const mutate = (variables, mutateOptions) => {
@@ -1 +1 @@
1
- {"version":3,"file":"useMutation.cjs","sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n watch,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n MutateOptions,\n MutateFunction,\n MutationObserverResult,\n MutationObserverOptions,\n DefaultError,\n} from '@tanstack/query-core'\nimport type { MaybeRefDeep, DistributiveOmit } from './types'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { cloneDeepUnref, updateState } from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { QueryClient } from './queryClient'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = MaybeRefDeep<MutationObserverOptions<TData, TError, TVariables, TContext>>\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n Result = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<Result>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n mutationOptions: MaybeRefDeep<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n queryClient?: QueryClient,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const client = queryClient || useQueryClient()\n const options = computed(() => {\n return client.defaultMutationOptions(cloneDeepUnref(mutationOptions))\n })\n const observer = new MutationObserver(client, options.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(\n options,\n () => {\n observer.setOptions(options.value)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const resultRefs = toRefs(readonly(state)) as unknown as ToRefs<\n Readonly<MutationResult<TData, TError, TVariables, TContext>>\n >\n\n return {\n ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset,\n }\n}\n"],"names":["useMutation","mutationOptions","queryClient","client","useQueryClient","options","computed","defaultMutationOptions","cloneDeepUnref","observer","MutationObserver","value","state","reactive","getCurrentResult","unsubscribe","subscribe","result","updateState","mutate","variables","mutateOptions","catch","watch","setOptions","deep","onScopeDispose","resultRefs","toRefs","readonly","mutateAsync","reset"],"mappings":";;;;;;;AAuDO,SAASA,WAAWA,CAMzBC,eAEC,EACDC,WAAyB,EACmC;AAC5D,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,6BAAc,EAAE,CAAA;AAC9C,EAAA,MAAMC,OAAO,GAAGC,gBAAQ,CAAC,MAAM;IAC7B,OAAOH,MAAM,CAACI,sBAAsB,CAACC,oBAAc,CAACP,eAAe,CAAC,CAAC,CAAA;AACvE,GAAC,CAAC,CAAA;EACF,MAAMQ,QAAQ,GAAG,IAAIC,0BAAgB,CAACP,MAAM,EAAEE,OAAO,CAACM,KAAK,CAAC,CAAA;EAC5D,MAAMC,KAAK,GAAGC,gBAAQ,CAACJ,QAAQ,CAACK,gBAAgB,EAAE,CAAC,CAAA;AAEnD,EAAA,MAAMC,WAAW,GAAGN,QAAQ,CAACO,SAAS,CAAEC,MAAM,IAAK;AACjDC,IAAAA,iBAAW,CAACN,KAAK,EAAEK,MAAM,CAAC,CAAA;AAC5B,GAAC,CAAC,CAAA;AAEF,EAAA,MAAME,MAAM,GAAGA,CACbC,SAAqB,EACrBC,aAAkE,KAC/D;IACHZ,QAAQ,CAACU,MAAM,CAACC,SAAS,EAAEC,aAAa,CAAC,CAACC,KAAK,CAAC,MAAM;AACpD;AAAA,KACD,CAAC,CAAA;GACH,CAAA;EAEDC,aAAK,CACHlB,OAAO,EACP,MAAM;AACJI,IAAAA,QAAQ,CAACe,UAAU,CAACnB,OAAO,CAACM,KAAK,CAAC,CAAA;AACpC,GAAC,EACD;AAAEc,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,sBAAc,CAAC,MAAM;AACnBX,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,MAAMY,UAAU,GAAGC,cAAM,CAACC,gBAAQ,CAACjB,KAAK,CAAC,CAExC,CAAA;EAED,OAAO;AACL,IAAA,GAAGe,UAAU;IACbR,MAAM;IACNW,WAAW,EAAElB,KAAK,CAACO,MAAM;IACzBY,KAAK,EAAEnB,KAAK,CAACmB,KAAAA;GACd,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"useMutation.cjs","sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n watch,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n MutateOptions,\n MutateFunction,\n MutationObserverResult,\n MutationObserverOptions,\n DefaultError,\n} from '@tanstack/query-core'\nimport { isServer } from '@tanstack/query-core'\nimport type { MaybeRefDeep, DistributiveOmit } from './types'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { cloneDeepUnref, updateState, noop } from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { QueryClient } from './queryClient'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = MaybeRefDeep<MutationObserverOptions<TData, TError, TVariables, TContext>>\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n Result = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<Result>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n mutationOptions: MaybeRefDeep<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n queryClient?: QueryClient,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const client = queryClient || useQueryClient()\n const options = computed(() => {\n return client.defaultMutationOptions(cloneDeepUnref(mutationOptions))\n })\n const observer = new MutationObserver(client, options.value)\n const state = reactive(observer.getCurrentResult())\n\n // Nuxt2 memory leak fix - do not subscribe on server\n const unsubscribe = isServer\n ? noop\n : observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(\n options,\n () => {\n observer.setOptions(options.value)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const resultRefs = toRefs(readonly(state)) as unknown as ToRefs<\n Readonly<MutationResult<TData, TError, TVariables, TContext>>\n >\n\n return {\n ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset,\n }\n}\n"],"names":["useMutation","mutationOptions","queryClient","client","useQueryClient","options","computed","defaultMutationOptions","cloneDeepUnref","observer","MutationObserver","value","state","reactive","getCurrentResult","unsubscribe","isServer","noop","subscribe","result","updateState","mutate","variables","mutateOptions","catch","watch","setOptions","deep","onScopeDispose","resultRefs","toRefs","readonly","mutateAsync","reset"],"mappings":";;;;;;;AAwDO,SAASA,WAAWA,CAMzBC,eAEC,EACDC,WAAyB,EACmC;AAC5D,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,6BAAc,EAAE,CAAA;AAC9C,EAAA,MAAMC,OAAO,GAAGC,gBAAQ,CAAC,MAAM;IAC7B,OAAOH,MAAM,CAACI,sBAAsB,CAACC,oBAAc,CAACP,eAAe,CAAC,CAAC,CAAA;AACvE,GAAC,CAAC,CAAA;EACF,MAAMQ,QAAQ,GAAG,IAAIC,0BAAgB,CAACP,MAAM,EAAEE,OAAO,CAACM,KAAK,CAAC,CAAA;EAC5D,MAAMC,KAAK,GAAGC,gBAAQ,CAACJ,QAAQ,CAACK,gBAAgB,EAAE,CAAC,CAAA;;AAEnD;EACA,MAAMC,WAAW,GAAGC,kBAAQ,GACxBC,UAAI,GACJR,QAAQ,CAACS,SAAS,CAAEC,MAAM,IAAK;AAC7BC,IAAAA,iBAAW,CAACR,KAAK,EAAEO,MAAM,CAAC,CAAA;AAC5B,GAAC,CAAC,CAAA;AAEN,EAAA,MAAME,MAAM,GAAGA,CACbC,SAAqB,EACrBC,aAAkE,KAC/D;IACHd,QAAQ,CAACY,MAAM,CAACC,SAAS,EAAEC,aAAa,CAAC,CAACC,KAAK,CAAC,MAAM;AACpD;AAAA,KACD,CAAC,CAAA;GACH,CAAA;EAEDC,aAAK,CACHpB,OAAO,EACP,MAAM;AACJI,IAAAA,QAAQ,CAACiB,UAAU,CAACrB,OAAO,CAACM,KAAK,CAAC,CAAA;AACpC,GAAC,EACD;AAAEgB,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,sBAAc,CAAC,MAAM;AACnBb,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,MAAMc,UAAU,GAAGC,cAAM,CAACC,gBAAQ,CAACnB,KAAK,CAAC,CAExC,CAAA;EAED,OAAO;AACL,IAAA,GAAGiB,UAAU;IACbR,MAAM;IACNW,WAAW,EAAEpB,KAAK,CAACS,MAAM;IACzBY,KAAK,EAAErB,KAAK,CAACqB,KAAAA;GACd,CAAA;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMutation.d.ts","sourceRoot":"","sources":["../../src/useMutation.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EAEV,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,YAAY,EACb,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAI7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,KAAK,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,IAAI,gBAAgB,CACzE,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,EAC3D,QAAQ,GAAG,OAAO,CACnB,CAAA;AAED,MAAM,MAAM,kBAAkB,CAC5B,KAAK,GAAG,OAAO,EACf,MAAM,GAAG,YAAY,EACrB,UAAU,GAAG,IAAI,EACjB,QAAQ,GAAG,OAAO,IAChB,YAAY,CAAC,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;AAE9E,KAAK,kBAAkB,CACrB,KAAK,GAAG,OAAO,EACf,MAAM,GAAG,YAAY,EACrB,UAAU,GAAG,IAAI,EACjB,QAAQ,GAAG,OAAO,IAChB,CACF,GAAG,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,KACxE,IAAI,CAAA;AAET,MAAM,MAAM,qBAAqB,CAC/B,KAAK,EACL,MAAM,EACN,UAAU,EACV,QAAQ,EACR,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,IAC1D,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG;IAC7B,MAAM,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;IAC/D,WAAW,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;IAChE,KAAK,EAAE,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAA;CAC5E,CAAA;AAED,wBAAgB,WAAW,CACzB,KAAK,GAAG,OAAO,EACf,MAAM,GAAG,YAAY,EACrB,UAAU,GAAG,IAAI,EACjB,QAAQ,GAAG,OAAO,EAElB,eAAe,EAAE,YAAY,CAC3B,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAC7D,EACD,WAAW,CAAC,EAAE,WAAW,GACxB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CA2C5D"}
1
+ {"version":3,"file":"useMutation.d.ts","sourceRoot":"","sources":["../../src/useMutation.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EAEV,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,YAAY,EACb,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAI7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,KAAK,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,IAAI,gBAAgB,CACzE,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,EAC3D,QAAQ,GAAG,OAAO,CACnB,CAAA;AAED,MAAM,MAAM,kBAAkB,CAC5B,KAAK,GAAG,OAAO,EACf,MAAM,GAAG,YAAY,EACrB,UAAU,GAAG,IAAI,EACjB,QAAQ,GAAG,OAAO,IAChB,YAAY,CAAC,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;AAE9E,KAAK,kBAAkB,CACrB,KAAK,GAAG,OAAO,EACf,MAAM,GAAG,YAAY,EACrB,UAAU,GAAG,IAAI,EACjB,QAAQ,GAAG,OAAO,IAChB,CACF,GAAG,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,KACxE,IAAI,CAAA;AAET,MAAM,MAAM,qBAAqB,CAC/B,KAAK,EACL,MAAM,EACN,UAAU,EACV,QAAQ,EACR,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,IAC1D,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG;IAC7B,MAAM,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;IAC/D,WAAW,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;IAChE,KAAK,EAAE,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAA;CAC5E,CAAA;AAED,wBAAgB,WAAW,CACzB,KAAK,GAAG,OAAO,EACf,MAAM,GAAG,YAAY,EACrB,UAAU,GAAG,IAAI,EACjB,QAAQ,GAAG,OAAO,EAElB,eAAe,EAAE,YAAY,CAC3B,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAC7D,EACD,WAAW,CAAC,EAAE,WAAW,GACxB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CA8C5D"}
@@ -1,6 +1,6 @@
1
1
  import { computed, reactive, watch, onScopeDispose, toRefs, readonly } from 'vue-demi';
2
- import { MutationObserver } from '@tanstack/query-core';
3
- import { cloneDeepUnref, updateState } from './utils.js';
2
+ import { MutationObserver, isServer } from '@tanstack/query-core';
3
+ import { cloneDeepUnref, noop, updateState } from './utils.js';
4
4
  import { useQueryClient } from './useQueryClient.js';
5
5
 
6
6
  function useMutation(mutationOptions, queryClient) {
@@ -10,7 +10,9 @@ function useMutation(mutationOptions, queryClient) {
10
10
  });
11
11
  const observer = new MutationObserver(client, options.value);
12
12
  const state = reactive(observer.getCurrentResult());
13
- const unsubscribe = observer.subscribe(result => {
13
+
14
+ // Nuxt2 memory leak fix - do not subscribe on server
15
+ const unsubscribe = isServer ? noop : observer.subscribe(result => {
14
16
  updateState(state, result);
15
17
  });
16
18
  const mutate = (variables, mutateOptions) => {
@@ -1 +1 @@
1
- {"version":3,"file":"useMutation.js","sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n watch,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n MutateOptions,\n MutateFunction,\n MutationObserverResult,\n MutationObserverOptions,\n DefaultError,\n} from '@tanstack/query-core'\nimport type { MaybeRefDeep, DistributiveOmit } from './types'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { cloneDeepUnref, updateState } from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { QueryClient } from './queryClient'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = MaybeRefDeep<MutationObserverOptions<TData, TError, TVariables, TContext>>\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n Result = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<Result>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n mutationOptions: MaybeRefDeep<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n queryClient?: QueryClient,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const client = queryClient || useQueryClient()\n const options = computed(() => {\n return client.defaultMutationOptions(cloneDeepUnref(mutationOptions))\n })\n const observer = new MutationObserver(client, options.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(\n options,\n () => {\n observer.setOptions(options.value)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const resultRefs = toRefs(readonly(state)) as unknown as ToRefs<\n Readonly<MutationResult<TData, TError, TVariables, TContext>>\n >\n\n return {\n ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset,\n }\n}\n"],"names":["useMutation","mutationOptions","queryClient","client","useQueryClient","options","computed","defaultMutationOptions","cloneDeepUnref","observer","MutationObserver","value","state","reactive","getCurrentResult","unsubscribe","subscribe","result","updateState","mutate","variables","mutateOptions","catch","watch","setOptions","deep","onScopeDispose","resultRefs","toRefs","readonly","mutateAsync","reset"],"mappings":";;;;;AAuDO,SAASA,WAAWA,CAMzBC,eAEC,EACDC,WAAyB,EACmC;AAC5D,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,cAAc,EAAE,CAAA;AAC9C,EAAA,MAAMC,OAAO,GAAGC,QAAQ,CAAC,MAAM;IAC7B,OAAOH,MAAM,CAACI,sBAAsB,CAACC,cAAc,CAACP,eAAe,CAAC,CAAC,CAAA;AACvE,GAAC,CAAC,CAAA;EACF,MAAMQ,QAAQ,GAAG,IAAIC,gBAAgB,CAACP,MAAM,EAAEE,OAAO,CAACM,KAAK,CAAC,CAAA;EAC5D,MAAMC,KAAK,GAAGC,QAAQ,CAACJ,QAAQ,CAACK,gBAAgB,EAAE,CAAC,CAAA;AAEnD,EAAA,MAAMC,WAAW,GAAGN,QAAQ,CAACO,SAAS,CAAEC,MAAM,IAAK;AACjDC,IAAAA,WAAW,CAACN,KAAK,EAAEK,MAAM,CAAC,CAAA;AAC5B,GAAC,CAAC,CAAA;AAEF,EAAA,MAAME,MAAM,GAAGA,CACbC,SAAqB,EACrBC,aAAkE,KAC/D;IACHZ,QAAQ,CAACU,MAAM,CAACC,SAAS,EAAEC,aAAa,CAAC,CAACC,KAAK,CAAC,MAAM;AACpD;AAAA,KACD,CAAC,CAAA;GACH,CAAA;EAEDC,KAAK,CACHlB,OAAO,EACP,MAAM;AACJI,IAAAA,QAAQ,CAACe,UAAU,CAACnB,OAAO,CAACM,KAAK,CAAC,CAAA;AACpC,GAAC,EACD;AAAEc,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,cAAc,CAAC,MAAM;AACnBX,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,MAAMY,UAAU,GAAGC,MAAM,CAACC,QAAQ,CAACjB,KAAK,CAAC,CAExC,CAAA;EAED,OAAO;AACL,IAAA,GAAGe,UAAU;IACbR,MAAM;IACNW,WAAW,EAAElB,KAAK,CAACO,MAAM;IACzBY,KAAK,EAAEnB,KAAK,CAACmB,KAAAA;GACd,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"useMutation.js","sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n watch,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n MutateOptions,\n MutateFunction,\n MutationObserverResult,\n MutationObserverOptions,\n DefaultError,\n} from '@tanstack/query-core'\nimport { isServer } from '@tanstack/query-core'\nimport type { MaybeRefDeep, DistributiveOmit } from './types'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { cloneDeepUnref, updateState, noop } from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { QueryClient } from './queryClient'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = MaybeRefDeep<MutationObserverOptions<TData, TError, TVariables, TContext>>\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n Result = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<Result>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n mutationOptions: MaybeRefDeep<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n queryClient?: QueryClient,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const client = queryClient || useQueryClient()\n const options = computed(() => {\n return client.defaultMutationOptions(cloneDeepUnref(mutationOptions))\n })\n const observer = new MutationObserver(client, options.value)\n const state = reactive(observer.getCurrentResult())\n\n // Nuxt2 memory leak fix - do not subscribe on server\n const unsubscribe = isServer\n ? noop\n : observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(\n options,\n () => {\n observer.setOptions(options.value)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const resultRefs = toRefs(readonly(state)) as unknown as ToRefs<\n Readonly<MutationResult<TData, TError, TVariables, TContext>>\n >\n\n return {\n ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset,\n }\n}\n"],"names":["useMutation","mutationOptions","queryClient","client","useQueryClient","options","computed","defaultMutationOptions","cloneDeepUnref","observer","MutationObserver","value","state","reactive","getCurrentResult","unsubscribe","isServer","noop","subscribe","result","updateState","mutate","variables","mutateOptions","catch","watch","setOptions","deep","onScopeDispose","resultRefs","toRefs","readonly","mutateAsync","reset"],"mappings":";;;;;AAwDO,SAASA,WAAWA,CAMzBC,eAEC,EACDC,WAAyB,EACmC;AAC5D,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,cAAc,EAAE,CAAA;AAC9C,EAAA,MAAMC,OAAO,GAAGC,QAAQ,CAAC,MAAM;IAC7B,OAAOH,MAAM,CAACI,sBAAsB,CAACC,cAAc,CAACP,eAAe,CAAC,CAAC,CAAA;AACvE,GAAC,CAAC,CAAA;EACF,MAAMQ,QAAQ,GAAG,IAAIC,gBAAgB,CAACP,MAAM,EAAEE,OAAO,CAACM,KAAK,CAAC,CAAA;EAC5D,MAAMC,KAAK,GAAGC,QAAQ,CAACJ,QAAQ,CAACK,gBAAgB,EAAE,CAAC,CAAA;;AAEnD;EACA,MAAMC,WAAW,GAAGC,QAAQ,GACxBC,IAAI,GACJR,QAAQ,CAACS,SAAS,CAAEC,MAAM,IAAK;AAC7BC,IAAAA,WAAW,CAACR,KAAK,EAAEO,MAAM,CAAC,CAAA;AAC5B,GAAC,CAAC,CAAA;AAEN,EAAA,MAAME,MAAM,GAAGA,CACbC,SAAqB,EACrBC,aAAkE,KAC/D;IACHd,QAAQ,CAACY,MAAM,CAACC,SAAS,EAAEC,aAAa,CAAC,CAACC,KAAK,CAAC,MAAM;AACpD;AAAA,KACD,CAAC,CAAA;GACH,CAAA;EAEDC,KAAK,CACHpB,OAAO,EACP,MAAM;AACJI,IAAAA,QAAQ,CAACiB,UAAU,CAACrB,OAAO,CAACM,KAAK,CAAC,CAAA;AACpC,GAAC,EACD;AAAEgB,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,cAAc,CAAC,MAAM;AACnBb,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,MAAMc,UAAU,GAAGC,MAAM,CAACC,QAAQ,CAACnB,KAAK,CAAC,CAExC,CAAA;EAED,OAAO;AACL,IAAA,GAAGiB,UAAU;IACbR,MAAM;IACNW,WAAW,EAAEpB,KAAK,CAACS,MAAM;IACzBY,KAAK,EAAErB,KAAK,CAACqB,KAAAA;GACd,CAAA;AACH;;;;"}
@@ -12,7 +12,9 @@ function useMutation(mutationOptions, queryClient) {
12
12
  });
13
13
  const observer = new queryCore.MutationObserver(client, options.value);
14
14
  const state = vueDemi.reactive(observer.getCurrentResult());
15
- const unsubscribe = observer.subscribe(result => {
15
+
16
+ // Nuxt2 memory leak fix - do not subscribe on server
17
+ const unsubscribe = queryCore.isServer ? utils.noop : observer.subscribe(result => {
16
18
  utils.updateState(state, result);
17
19
  });
18
20
  const mutate = (variables, mutateOptions) => {