@tanstack/vue-query 4.32.3 → 4.32.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"useBaseQuery.d.ts","sourceRoot":"","sources":["../../src/useBaseQuery.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAEjE,oBAAY,kBAAkB,CAC5B,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,aAAK,sBAAsB,CACzB,YAAY,EACZ,MAAM,EACN,KAAK,EACL,SAAS,SAAS,QAAQ,GAAG,QAAQ,IAEnC,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,GACvD,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;AAEnE,wBAAgB,YAAY,CAC1B,YAAY,EACZ,MAAM,EACN,KAAK,EACL,SAAS,SAAS,QAAQ,EAE1B,QAAQ,EAAE,OAAO,aAAa,EAC9B,IAAI,EACA,SAAS,GACT,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAClE,IAAI,GACA,aAAa,CAAC,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,GACjD,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAM,EACvE,IAAI,GAAE,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAM,GACxE,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CA+EnC;AAED,wBAAgB,cAAc,CAC5B,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,OAAO,EAChB,KAAK,GAAG,YAAY,EACpB,UAAU,GAAG,YAAY,EACzB,SAAS,SAAS,QAAQ,GAAG,QAAQ,EAErC,IAAI,EACA,QAAQ,CAAC,SAAS,CAAC,GACnB,QAAQ,CAAC,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,EAC5E,IAAI,GACA,QAAQ,CAAC,aAAa,CAAC,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAC3D,QAAQ,CACN,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAC1D,EACV,IAAI,GAAE,QAAQ,CACZ,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAC1D,GACL,kBAAkB,CACnB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CACzE,CAkBA"}
1
+ {"version":3,"file":"useBaseQuery.d.ts","sourceRoot":"","sources":["../../src/useBaseQuery.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAEjE,oBAAY,kBAAkB,CAC5B,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,aAAK,sBAAsB,CACzB,YAAY,EACZ,MAAM,EACN,KAAK,EACL,SAAS,SAAS,QAAQ,GAAG,QAAQ,IAEnC,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,GACvD,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;AAEnE,wBAAgB,YAAY,CAC1B,YAAY,EACZ,MAAM,EACN,KAAK,EACL,SAAS,SAAS,QAAQ,EAE1B,QAAQ,EAAE,OAAO,aAAa,EAC9B,IAAI,EACA,SAAS,GACT,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAClE,IAAI,GACA,aAAa,CAAC,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,GACjD,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAM,EACvE,IAAI,GAAE,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAM,GACxE,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAgGnC;AAED,wBAAgB,cAAc,CAC5B,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,OAAO,EAChB,KAAK,GAAG,YAAY,EACpB,UAAU,GAAG,YAAY,EACzB,SAAS,SAAS,QAAQ,GAAG,QAAQ,EAErC,IAAI,EACA,QAAQ,CAAC,SAAS,CAAC,GACnB,QAAQ,CAAC,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,EAC5E,IAAI,GACA,QAAQ,CAAC,aAAa,CAAC,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAC3D,QAAQ,CACN,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAC1D,EACV,IAAI,GAAE,QAAQ,CACZ,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAC1D,GACL,kBAAkB,CACnB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CACzE,CAkBA"}
@@ -1,6 +1,6 @@
1
1
  import { computed, reactive, watch, onScopeDispose, toRefs, readonly, unref } from 'vue-demi';
2
2
  import { useQueryClient } from './useQueryClient.esm.js';
3
- import { updateState, isQueryKey, cloneDeepUnref } from './utils.esm.js';
3
+ import { updateState, shouldThrowError, isQueryKey, cloneDeepUnref } from './utils.esm.js';
4
4
 
5
5
  function useBaseQuery(Observer, arg1, arg2 = {}, arg3 = {}) {
6
6
  var _options$value$queryC;
@@ -61,8 +61,14 @@ function useBaseQuery(Observer, arg1, arg2 = {}, arg3 = {}) {
61
61
  deep: true
62
62
  });
63
63
  });
64
- };
64
+ }; // Handle error boundary
65
+
65
66
 
67
+ watch(() => state.error, error => {
68
+ if (state.isError && !state.isFetching && shouldThrowError(defaultedOptions.value.useErrorBoundary, [error, observer.getCurrentQuery()])) {
69
+ throw error;
70
+ }
71
+ });
66
72
  return { ...toRefs(readonly(state)),
67
73
  suspense
68
74
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useBaseQuery.esm.js","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n unref,\n watch,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, isQueryKey, updateState } from './utils'\nimport type { ToRefs, UnwrapRef } from 'vue-demi'\nimport type {\n QueryFunction,\n QueryKey,\n QueryObserver,\n QueryObserverOptions,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { MaybeRef, WithQueryClientKey } from './types'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseQueryReturnType<\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 TQueryKey extends QueryKey = QueryKey,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>\n | UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey,\n>(\n Observer: typeof QueryObserver,\n arg1:\n | TQueryKey\n | UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>,\n arg2:\n | QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>\n | UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey> = {},\n arg3: UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey> = {},\n): UseQueryReturnType<TData, TError> {\n const options = computed(() => parseQueryArgs(arg1, arg2, arg3))\n\n const queryClient =\n options.value.queryClient ?? useQueryClient(options.value.queryClientKey)\n\n const defaultedOptions = computed(() => {\n const defaulted = queryClient.defaultQueryOptions(options.value)\n defaulted._optimisticResults = queryClient.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(queryClient, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n queryClient.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(defaultedOptions, () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n })\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>(\n (resolve, reject) => {\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 observer\n .fetchOptimistic(defaultedOptions.value)\n .then(resolve, reject)\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\n return {\n ...(toRefs(readonly(state)) as UseQueryReturnType<TData, TError>),\n suspense,\n }\n}\n\nexport function parseQueryArgs<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n arg1:\n | MaybeRef<TQueryKey>\n | MaybeRef<UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>>,\n arg2:\n | MaybeRef<QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>>\n | MaybeRef<\n UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>\n > = {},\n arg3: MaybeRef<\n UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>\n > = {},\n): WithQueryClientKey<\n QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n> {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n const plainArg3 = unref(arg3)\n\n let options = plainArg1\n\n if (!isQueryKey(plainArg1)) {\n options = plainArg1\n } else if (typeof plainArg2 === 'function') {\n options = { ...plainArg3, queryKey: plainArg1, queryFn: plainArg2 }\n } else {\n options = { ...plainArg2, queryKey: plainArg1 }\n }\n\n return cloneDeepUnref(options) as WithQueryClientKey<\n QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n >\n}\n"],"names":["useBaseQuery","Observer","arg1","arg2","arg3","options","computed","parseQueryArgs","queryClient","value","useQueryClient","queryClientKey","defaultedOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","observer","state","reactive","getCurrentResult","unsubscribe","watch","subscribe","result","updateState","immediate","setOptions","onScopeDispose","suspense","Promise","resolve","reject","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","then","deep","toRefs","readonly","plainArg1","unref","plainArg2","plainArg3","isQueryKey","queryKey","queryFn","cloneDeepUnref"],"mappings":"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"}
1
+ {"version":3,"file":"useBaseQuery.esm.js","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n unref,\n watch,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport {\n cloneDeepUnref,\n isQueryKey,\n shouldThrowError,\n updateState,\n} from './utils'\nimport type { ToRefs, UnwrapRef } from 'vue-demi'\nimport type {\n QueryFunction,\n QueryKey,\n QueryObserver,\n QueryObserverOptions,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { MaybeRef, WithQueryClientKey } from './types'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseQueryReturnType<\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 TQueryKey extends QueryKey = QueryKey,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>\n | UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey,\n>(\n Observer: typeof QueryObserver,\n arg1:\n | TQueryKey\n | UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>,\n arg2:\n | QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>\n | UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey> = {},\n arg3: UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey> = {},\n): UseQueryReturnType<TData, TError> {\n const options = computed(() => parseQueryArgs(arg1, arg2, arg3))\n\n const queryClient =\n options.value.queryClient ?? useQueryClient(options.value.queryClientKey)\n\n const defaultedOptions = computed(() => {\n const defaulted = queryClient.defaultQueryOptions(options.value)\n defaulted._optimisticResults = queryClient.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(queryClient, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n queryClient.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(defaultedOptions, () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n })\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>(\n (resolve, reject) => {\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 observer\n .fetchOptimistic(defaultedOptions.value)\n .then(resolve, reject)\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\n // Handle error boundary\n watch(\n () => state.error,\n (error) => {\n if (\n state.isError &&\n !state.isFetching &&\n shouldThrowError(defaultedOptions.value.useErrorBoundary, [\n error as TError,\n observer.getCurrentQuery(),\n ])\n ) {\n throw error\n }\n },\n )\n\n return {\n ...(toRefs(readonly(state)) as UseQueryReturnType<TData, TError>),\n suspense,\n }\n}\n\nexport function parseQueryArgs<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n arg1:\n | MaybeRef<TQueryKey>\n | MaybeRef<UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>>,\n arg2:\n | MaybeRef<QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>>\n | MaybeRef<\n UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>\n > = {},\n arg3: MaybeRef<\n UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>\n > = {},\n): WithQueryClientKey<\n QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n> {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n const plainArg3 = unref(arg3)\n\n let options = plainArg1\n\n if (!isQueryKey(plainArg1)) {\n options = plainArg1\n } else if (typeof plainArg2 === 'function') {\n options = { ...plainArg3, queryKey: plainArg1, queryFn: plainArg2 }\n } else {\n options = { ...plainArg2, queryKey: plainArg1 }\n }\n\n return cloneDeepUnref(options) as WithQueryClientKey<\n QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n >\n}\n"],"names":["useBaseQuery","Observer","arg1","arg2","arg3","options","computed","parseQueryArgs","queryClient","value","useQueryClient","queryClientKey","defaultedOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","observer","state","reactive","getCurrentResult","unsubscribe","watch","subscribe","result","updateState","immediate","setOptions","onScopeDispose","suspense","Promise","resolve","reject","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","then","deep","error","isError","isFetching","shouldThrowError","useErrorBoundary","getCurrentQuery","toRefs","readonly","plainArg1","unref","plainArg2","plainArg3","isQueryKey","queryKey","queryFn","cloneDeepUnref"],"mappings":"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"}
@@ -65,8 +65,14 @@ function useBaseQuery(Observer, arg1, arg2 = {}, arg3 = {}) {
65
65
  deep: true
66
66
  });
67
67
  });
68
- };
68
+ }; // Handle error boundary
69
+
69
70
 
71
+ vueDemi.watch(() => state.error, error => {
72
+ if (state.isError && !state.isFetching && utils.shouldThrowError(defaultedOptions.value.useErrorBoundary, [error, observer.getCurrentQuery()])) {
73
+ throw error;
74
+ }
75
+ });
70
76
  return { ...vueDemi.toRefs(vueDemi.readonly(state)),
71
77
  suspense
72
78
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useBaseQuery.js","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n unref,\n watch,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, isQueryKey, updateState } from './utils'\nimport type { ToRefs, UnwrapRef } from 'vue-demi'\nimport type {\n QueryFunction,\n QueryKey,\n QueryObserver,\n QueryObserverOptions,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { MaybeRef, WithQueryClientKey } from './types'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseQueryReturnType<\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 TQueryKey extends QueryKey = QueryKey,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>\n | UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey,\n>(\n Observer: typeof QueryObserver,\n arg1:\n | TQueryKey\n | UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>,\n arg2:\n | QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>\n | UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey> = {},\n arg3: UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey> = {},\n): UseQueryReturnType<TData, TError> {\n const options = computed(() => parseQueryArgs(arg1, arg2, arg3))\n\n const queryClient =\n options.value.queryClient ?? useQueryClient(options.value.queryClientKey)\n\n const defaultedOptions = computed(() => {\n const defaulted = queryClient.defaultQueryOptions(options.value)\n defaulted._optimisticResults = queryClient.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(queryClient, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n queryClient.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(defaultedOptions, () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n })\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>(\n (resolve, reject) => {\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 observer\n .fetchOptimistic(defaultedOptions.value)\n .then(resolve, reject)\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\n return {\n ...(toRefs(readonly(state)) as UseQueryReturnType<TData, TError>),\n suspense,\n }\n}\n\nexport function parseQueryArgs<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n arg1:\n | MaybeRef<TQueryKey>\n | MaybeRef<UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>>,\n arg2:\n | MaybeRef<QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>>\n | MaybeRef<\n UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>\n > = {},\n arg3: MaybeRef<\n UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>\n > = {},\n): WithQueryClientKey<\n QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n> {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n const plainArg3 = unref(arg3)\n\n let options = plainArg1\n\n if (!isQueryKey(plainArg1)) {\n options = plainArg1\n } else if (typeof plainArg2 === 'function') {\n options = { ...plainArg3, queryKey: plainArg1, queryFn: plainArg2 }\n } else {\n options = { ...plainArg2, queryKey: plainArg1 }\n }\n\n return cloneDeepUnref(options) as WithQueryClientKey<\n QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n >\n}\n"],"names":["useBaseQuery","Observer","arg1","arg2","arg3","options","computed","parseQueryArgs","queryClient","value","useQueryClient","queryClientKey","defaultedOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","observer","state","reactive","getCurrentResult","unsubscribe","watch","subscribe","result","updateState","immediate","setOptions","onScopeDispose","suspense","Promise","resolve","reject","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","then","deep","toRefs","readonly","plainArg1","unref","plainArg2","plainArg3","isQueryKey","queryKey","queryFn","cloneDeepUnref"],"mappings":"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"}
1
+ {"version":3,"file":"useBaseQuery.js","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n unref,\n watch,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport {\n cloneDeepUnref,\n isQueryKey,\n shouldThrowError,\n updateState,\n} from './utils'\nimport type { ToRefs, UnwrapRef } from 'vue-demi'\nimport type {\n QueryFunction,\n QueryKey,\n QueryObserver,\n QueryObserverOptions,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { MaybeRef, WithQueryClientKey } from './types'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseQueryReturnType<\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 TQueryKey extends QueryKey = QueryKey,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>\n | UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey,\n>(\n Observer: typeof QueryObserver,\n arg1:\n | TQueryKey\n | UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>,\n arg2:\n | QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>\n | UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey> = {},\n arg3: UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey> = {},\n): UseQueryReturnType<TData, TError> {\n const options = computed(() => parseQueryArgs(arg1, arg2, arg3))\n\n const queryClient =\n options.value.queryClient ?? useQueryClient(options.value.queryClientKey)\n\n const defaultedOptions = computed(() => {\n const defaulted = queryClient.defaultQueryOptions(options.value)\n defaulted._optimisticResults = queryClient.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(queryClient, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n queryClient.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(defaultedOptions, () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n })\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>(\n (resolve, reject) => {\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 observer\n .fetchOptimistic(defaultedOptions.value)\n .then(resolve, reject)\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\n // Handle error boundary\n watch(\n () => state.error,\n (error) => {\n if (\n state.isError &&\n !state.isFetching &&\n shouldThrowError(defaultedOptions.value.useErrorBoundary, [\n error as TError,\n observer.getCurrentQuery(),\n ])\n ) {\n throw error\n }\n },\n )\n\n return {\n ...(toRefs(readonly(state)) as UseQueryReturnType<TData, TError>),\n suspense,\n }\n}\n\nexport function parseQueryArgs<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n arg1:\n | MaybeRef<TQueryKey>\n | MaybeRef<UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>>,\n arg2:\n | MaybeRef<QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>>\n | MaybeRef<\n UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>\n > = {},\n arg3: MaybeRef<\n UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>\n > = {},\n): WithQueryClientKey<\n QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n> {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n const plainArg3 = unref(arg3)\n\n let options = plainArg1\n\n if (!isQueryKey(plainArg1)) {\n options = plainArg1\n } else if (typeof plainArg2 === 'function') {\n options = { ...plainArg3, queryKey: plainArg1, queryFn: plainArg2 }\n } else {\n options = { ...plainArg2, queryKey: plainArg1 }\n }\n\n return cloneDeepUnref(options) as WithQueryClientKey<\n QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n >\n}\n"],"names":["useBaseQuery","Observer","arg1","arg2","arg3","options","computed","parseQueryArgs","queryClient","value","useQueryClient","queryClientKey","defaultedOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","observer","state","reactive","getCurrentResult","unsubscribe","watch","subscribe","result","updateState","immediate","setOptions","onScopeDispose","suspense","Promise","resolve","reject","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","then","deep","error","isError","isFetching","shouldThrowError","useErrorBoundary","getCurrentQuery","toRefs","readonly","plainArg1","unref","plainArg2","plainArg3","isQueryKey","queryKey","queryFn","cloneDeepUnref"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { computed, reactive, watch, onScopeDispose, toRefs, readonly, unref } from 'vue-demi';
2
2
  import { useQueryClient } from './useQueryClient.mjs';
3
- import { updateState, isQueryKey, cloneDeepUnref } from './utils.mjs';
3
+ import { updateState, shouldThrowError, isQueryKey, cloneDeepUnref } from './utils.mjs';
4
4
 
5
5
  function useBaseQuery(Observer, arg1, arg2 = {}, arg3 = {}) {
6
6
  var _options$value$queryC;
@@ -61,8 +61,14 @@ function useBaseQuery(Observer, arg1, arg2 = {}, arg3 = {}) {
61
61
  deep: true
62
62
  });
63
63
  });
64
- };
64
+ }; // Handle error boundary
65
+
65
66
 
67
+ watch(() => state.error, error => {
68
+ if (state.isError && !state.isFetching && shouldThrowError(defaultedOptions.value.useErrorBoundary, [error, observer.getCurrentQuery()])) {
69
+ throw error;
70
+ }
71
+ });
66
72
  return { ...toRefs(readonly(state)),
67
73
  suspense
68
74
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useBaseQuery.mjs","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n unref,\n watch,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, isQueryKey, updateState } from './utils'\nimport type { ToRefs, UnwrapRef } from 'vue-demi'\nimport type {\n QueryFunction,\n QueryKey,\n QueryObserver,\n QueryObserverOptions,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { MaybeRef, WithQueryClientKey } from './types'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseQueryReturnType<\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 TQueryKey extends QueryKey = QueryKey,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>\n | UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey,\n>(\n Observer: typeof QueryObserver,\n arg1:\n | TQueryKey\n | UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>,\n arg2:\n | QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>\n | UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey> = {},\n arg3: UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey> = {},\n): UseQueryReturnType<TData, TError> {\n const options = computed(() => parseQueryArgs(arg1, arg2, arg3))\n\n const queryClient =\n options.value.queryClient ?? useQueryClient(options.value.queryClientKey)\n\n const defaultedOptions = computed(() => {\n const defaulted = queryClient.defaultQueryOptions(options.value)\n defaulted._optimisticResults = queryClient.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(queryClient, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n queryClient.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(defaultedOptions, () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n })\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>(\n (resolve, reject) => {\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 observer\n .fetchOptimistic(defaultedOptions.value)\n .then(resolve, reject)\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\n return {\n ...(toRefs(readonly(state)) as UseQueryReturnType<TData, TError>),\n suspense,\n }\n}\n\nexport function parseQueryArgs<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n arg1:\n | MaybeRef<TQueryKey>\n | MaybeRef<UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>>,\n arg2:\n | MaybeRef<QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>>\n | MaybeRef<\n UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>\n > = {},\n arg3: MaybeRef<\n UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>\n > = {},\n): WithQueryClientKey<\n QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n> {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n const plainArg3 = unref(arg3)\n\n let options = plainArg1\n\n if (!isQueryKey(plainArg1)) {\n options = plainArg1\n } else if (typeof plainArg2 === 'function') {\n options = { ...plainArg3, queryKey: plainArg1, queryFn: plainArg2 }\n } else {\n options = { ...plainArg2, queryKey: plainArg1 }\n }\n\n return cloneDeepUnref(options) as WithQueryClientKey<\n QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n >\n}\n"],"names":["useBaseQuery","Observer","arg1","arg2","arg3","options","computed","parseQueryArgs","queryClient","value","useQueryClient","queryClientKey","defaultedOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","observer","state","reactive","getCurrentResult","unsubscribe","watch","subscribe","result","updateState","immediate","setOptions","onScopeDispose","suspense","Promise","resolve","reject","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","then","deep","toRefs","readonly","plainArg1","unref","plainArg2","plainArg3","isQueryKey","queryKey","queryFn","cloneDeepUnref"],"mappings":"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"}
1
+ {"version":3,"file":"useBaseQuery.mjs","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n unref,\n watch,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport {\n cloneDeepUnref,\n isQueryKey,\n shouldThrowError,\n updateState,\n} from './utils'\nimport type { ToRefs, UnwrapRef } from 'vue-demi'\nimport type {\n QueryFunction,\n QueryKey,\n QueryObserver,\n QueryObserverOptions,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { MaybeRef, WithQueryClientKey } from './types'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseQueryReturnType<\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 TQueryKey extends QueryKey = QueryKey,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>\n | UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey,\n>(\n Observer: typeof QueryObserver,\n arg1:\n | TQueryKey\n | UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>,\n arg2:\n | QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>\n | UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey> = {},\n arg3: UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey> = {},\n): UseQueryReturnType<TData, TError> {\n const options = computed(() => parseQueryArgs(arg1, arg2, arg3))\n\n const queryClient =\n options.value.queryClient ?? useQueryClient(options.value.queryClientKey)\n\n const defaultedOptions = computed(() => {\n const defaulted = queryClient.defaultQueryOptions(options.value)\n defaulted._optimisticResults = queryClient.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(queryClient, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n queryClient.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(defaultedOptions, () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n })\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>(\n (resolve, reject) => {\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 observer\n .fetchOptimistic(defaultedOptions.value)\n .then(resolve, reject)\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\n // Handle error boundary\n watch(\n () => state.error,\n (error) => {\n if (\n state.isError &&\n !state.isFetching &&\n shouldThrowError(defaultedOptions.value.useErrorBoundary, [\n error as TError,\n observer.getCurrentQuery(),\n ])\n ) {\n throw error\n }\n },\n )\n\n return {\n ...(toRefs(readonly(state)) as UseQueryReturnType<TData, TError>),\n suspense,\n }\n}\n\nexport function parseQueryArgs<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n arg1:\n | MaybeRef<TQueryKey>\n | MaybeRef<UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>>,\n arg2:\n | MaybeRef<QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>>\n | MaybeRef<\n UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>\n > = {},\n arg3: MaybeRef<\n UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey>\n > = {},\n): WithQueryClientKey<\n QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n> {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n const plainArg3 = unref(arg3)\n\n let options = plainArg1\n\n if (!isQueryKey(plainArg1)) {\n options = plainArg1\n } else if (typeof plainArg2 === 'function') {\n options = { ...plainArg3, queryKey: plainArg1, queryFn: plainArg2 }\n } else {\n options = { ...plainArg2, queryKey: plainArg1 }\n }\n\n return cloneDeepUnref(options) as WithQueryClientKey<\n QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n >\n}\n"],"names":["useBaseQuery","Observer","arg1","arg2","arg3","options","computed","parseQueryArgs","queryClient","value","useQueryClient","queryClientKey","defaultedOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","observer","state","reactive","getCurrentResult","unsubscribe","watch","subscribe","result","updateState","immediate","setOptions","onScopeDispose","suspense","Promise","resolve","reject","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","then","deep","error","isError","isFetching","shouldThrowError","useErrorBoundary","getCurrentQuery","toRefs","readonly","plainArg1","unref","plainArg2","plainArg3","isQueryKey","queryKey","queryFn","cloneDeepUnref"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMutation.d.ts","sourceRoot":"","sources":["../../src/useMutation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMutation.d.ts","sourceRoot":"","sources":["../../src/useMutation.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { computed, reactive, watch, onScopeDispose, toRefs, readonly, unref } from 'vue-demi';
2
2
  import { MutationObserver } from '@tanstack/query-core';
3
- import { updateState, isMutationKey, cloneDeepUnref } from './utils.esm.js';
3
+ import { updateState, shouldThrowError, isMutationKey, cloneDeepUnref } from './utils.esm.js';
4
4
  import { useQueryClient } from './useQueryClient.esm.js';
5
5
 
6
6
  function useMutation(arg1, arg2, arg3) {
@@ -28,6 +28,11 @@ function useMutation(arg1, arg2, arg3) {
28
28
  unsubscribe();
29
29
  });
30
30
  const resultRefs = toRefs(readonly(state));
31
+ watch(() => state.error, error => {
32
+ if (error && shouldThrowError(options.value.useErrorBoundary, [error])) {
33
+ throw error;
34
+ }
35
+ });
31
36
  return { ...resultRefs,
32
37
  mutate,
33
38
  mutateAsync: state.mutate,
@@ -1 +1 @@
1
- {"version":3,"file":"useMutation.esm.js","sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n unref,\n watch,\n} from 'vue-demi'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { cloneDeepUnref, isMutationKey, updateState } from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n MutateFunction,\n MutateOptions,\n MutationFunction,\n MutationKey,\n MutationObserverOptions,\n MutationObserverResult,\n} from '@tanstack/query-core'\nimport type {\n DistributiveOmit,\n MaybeRef,\n MaybeRefDeep,\n WithQueryClientKey,\n} from './types'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<TData, TError, TVariables, TContext> =\n WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >\n\nexport type VueMutationObserverOptions<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> = {\n [Property in keyof UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >]: MaybeRefDeep<\n UseMutationOptions<TData, TError, TVariables, TContext>[Property]\n >\n}\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = unknown,\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 = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n options: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationFn: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n mutationFn?: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey' | 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const options = computed(() => {\n return parseMutationArgs(arg1, arg2, arg3)\n })\n const queryClient =\n options.value.queryClient ?? useQueryClient(options.value.queryClientKey)\n const observer = new MutationObserver(\n queryClient,\n queryClient.defaultMutationOptions(options.value),\n )\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(options, () => {\n observer.setOptions(queryClient.defaultMutationOptions(options.value))\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\nexport function parseMutationArgs<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n> {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n let options = plainArg1\n if (isMutationKey(plainArg1)) {\n if (typeof plainArg2 === 'function') {\n const plainArg3 = unref(arg3)\n options = { ...plainArg3, mutationKey: plainArg1, mutationFn: plainArg2 }\n } else {\n options = { ...plainArg2, mutationKey: plainArg1 }\n }\n }\n\n if (typeof plainArg1 === 'function') {\n options = { ...plainArg2, mutationFn: plainArg1 }\n }\n\n return cloneDeepUnref(options) as UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >\n}\n"],"names":["useMutation","arg1","arg2","arg3","options","computed","parseMutationArgs","queryClient","value","useQueryClient","queryClientKey","observer","MutationObserver","defaultMutationOptions","state","reactive","getCurrentResult","unsubscribe","subscribe","result","updateState","mutate","variables","mutateOptions","catch","watch","setOptions","onScopeDispose","resultRefs","toRefs","readonly","mutateAsync","reset","plainArg1","unref","plainArg2","isMutationKey","plainArg3","mutationKey","mutationFn","cloneDeepUnref"],"mappings":";;;;;AAgIO,SAASA,WAAT,CAMLC,IANK,EAULC,IAVK,EAaLC,IAbK,EAgBuD;AAAA,EAAA,IAAA,qBAAA,CAAA;;AAC5D,EAAA,MAAMC,OAAO,GAAGC,QAAQ,CAAC,MAAM;AAC7B,IAAA,OAAOC,iBAAiB,CAACL,IAAD,EAAOC,IAAP,EAAaC,IAAb,CAAxB,CAAA;AACD,GAFuB,CAAxB,CAAA;AAGA,EAAA,MAAMI,WAAW,GAAA,CAAA,qBAAA,GACfH,OAAO,CAACI,KAAR,CAAcD,WADC,KACcE,IAAAA,GAAAA,qBAAAA,GAAAA,cAAc,CAACL,OAAO,CAACI,KAAR,CAAcE,cAAf,CAD7C,CAAA;AAEA,EAAA,MAAMC,QAAQ,GAAG,IAAIC,gBAAJ,CACfL,WADe,EAEfA,WAAW,CAACM,sBAAZ,CAAmCT,OAAO,CAACI,KAA3C,CAFe,CAAjB,CAAA;EAIA,MAAMM,KAAK,GAAGC,QAAQ,CAACJ,QAAQ,CAACK,gBAAT,EAAD,CAAtB,CAAA;AAEA,EAAA,MAAMC,WAAW,GAAGN,QAAQ,CAACO,SAAT,CAAoBC,MAAD,IAAY;AACjDC,IAAAA,WAAW,CAACN,KAAD,EAAQK,MAAR,CAAX,CAAA;AACD,GAFmB,CAApB,CAAA;;AAIA,EAAA,MAAME,MAAM,GAAG,CACbC,SADa,EAEbC,aAFa,KAGV;IACHZ,QAAQ,CAACU,MAAT,CAAgBC,SAAhB,EAA2BC,aAA3B,CAA0CC,CAAAA,KAA1C,CAAgD,MAAM;KAAtD,CAAA,CAAA;GAJF,CAAA;;EASAC,KAAK,CAACrB,OAAD,EAAU,MAAM;IACnBO,QAAQ,CAACe,UAAT,CAAoBnB,WAAW,CAACM,sBAAZ,CAAmCT,OAAO,CAACI,KAA3C,CAApB,CAAA,CAAA;AACD,GAFI,CAAL,CAAA;AAIAmB,EAAAA,cAAc,CAAC,MAAM;IACnBV,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;EAIA,MAAMW,UAAU,GAAGC,MAAM,CAACC,QAAQ,CAAChB,KAAD,CAAT,CAAzB,CAAA;EAIA,OAAO,EACL,GAAGc,UADE;IAELP,MAFK;IAGLU,WAAW,EAAEjB,KAAK,CAACO,MAHd;IAILW,KAAK,EAAElB,KAAK,CAACkB,KAAAA;GAJf,CAAA;AAMD,CAAA;AAEM,SAAS1B,iBAAT,CAMLL,IANK,EAULC,IAVK,EAaLC,IAbK,EAkBL;AACA,EAAA,MAAM8B,SAAS,GAAGC,KAAK,CAACjC,IAAD,CAAvB,CAAA;AACA,EAAA,MAAMkC,SAAS,GAAGD,KAAK,CAAChC,IAAD,CAAvB,CAAA;EACA,IAAIE,OAAO,GAAG6B,SAAd,CAAA;;AACA,EAAA,IAAIG,aAAa,CAACH,SAAD,CAAjB,EAA8B;AAC5B,IAAA,IAAI,OAAOE,SAAP,KAAqB,UAAzB,EAAqC;AACnC,MAAA,MAAME,SAAS,GAAGH,KAAK,CAAC/B,IAAD,CAAvB,CAAA;MACAC,OAAO,GAAG,EAAE,GAAGiC,SAAL;AAAgBC,QAAAA,WAAW,EAAEL,SAA7B;AAAwCM,QAAAA,UAAU,EAAEJ,SAAAA;OAA9D,CAAA;AACD,KAHD,MAGO;MACL/B,OAAO,GAAG,EAAE,GAAG+B,SAAL;AAAgBG,QAAAA,WAAW,EAAEL,SAAAA;OAAvC,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAI,OAAOA,SAAP,KAAqB,UAAzB,EAAqC;IACnC7B,OAAO,GAAG,EAAE,GAAG+B,SAAL;AAAgBI,MAAAA,UAAU,EAAEN,SAAAA;KAAtC,CAAA;AACD,GAAA;;EAED,OAAOO,cAAc,CAACpC,OAAD,CAArB,CAAA;AAMD;;;;"}
1
+ {"version":3,"file":"useMutation.esm.js","sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n unref,\n watch,\n} from 'vue-demi'\nimport { MutationObserver } from '@tanstack/query-core'\nimport {\n cloneDeepUnref,\n isMutationKey,\n shouldThrowError,\n updateState,\n} from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n MutateFunction,\n MutateOptions,\n MutationFunction,\n MutationKey,\n MutationObserverOptions,\n MutationObserverResult,\n} from '@tanstack/query-core'\nimport type {\n DistributiveOmit,\n MaybeRef,\n MaybeRefDeep,\n WithQueryClientKey,\n} from './types'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<TData, TError, TVariables, TContext> =\n WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >\n\nexport type VueMutationObserverOptions<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> = {\n [Property in keyof UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >]: MaybeRefDeep<\n UseMutationOptions<TData, TError, TVariables, TContext>[Property]\n >\n}\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = unknown,\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 = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n options: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationFn: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n mutationFn?: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey' | 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const options = computed(() => {\n return parseMutationArgs(arg1, arg2, arg3)\n })\n const queryClient =\n options.value.queryClient ?? useQueryClient(options.value.queryClientKey)\n const observer = new MutationObserver(\n queryClient,\n queryClient.defaultMutationOptions(options.value),\n )\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(options, () => {\n observer.setOptions(queryClient.defaultMutationOptions(options.value))\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 watch(\n () => state.error,\n (error) => {\n if (\n error &&\n shouldThrowError(options.value.useErrorBoundary, [error as TError])\n ) {\n throw error\n }\n },\n )\n\n return {\n ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset,\n }\n}\n\nexport function parseMutationArgs<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n> {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n let options = plainArg1\n if (isMutationKey(plainArg1)) {\n if (typeof plainArg2 === 'function') {\n const plainArg3 = unref(arg3)\n options = { ...plainArg3, mutationKey: plainArg1, mutationFn: plainArg2 }\n } else {\n options = { ...plainArg2, mutationKey: plainArg1 }\n }\n }\n\n if (typeof plainArg1 === 'function') {\n options = { ...plainArg2, mutationFn: plainArg1 }\n }\n\n return cloneDeepUnref(options) as UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >\n}\n"],"names":["useMutation","arg1","arg2","arg3","options","computed","parseMutationArgs","queryClient","value","useQueryClient","queryClientKey","observer","MutationObserver","defaultMutationOptions","state","reactive","getCurrentResult","unsubscribe","subscribe","result","updateState","mutate","variables","mutateOptions","catch","watch","setOptions","onScopeDispose","resultRefs","toRefs","readonly","error","shouldThrowError","useErrorBoundary","mutateAsync","reset","plainArg1","unref","plainArg2","isMutationKey","plainArg3","mutationKey","mutationFn","cloneDeepUnref"],"mappings":";;;;;AAqIO,SAASA,WAAT,CAMLC,IANK,EAULC,IAVK,EAaLC,IAbK,EAgBuD;AAAA,EAAA,IAAA,qBAAA,CAAA;;AAC5D,EAAA,MAAMC,OAAO,GAAGC,QAAQ,CAAC,MAAM;AAC7B,IAAA,OAAOC,iBAAiB,CAACL,IAAD,EAAOC,IAAP,EAAaC,IAAb,CAAxB,CAAA;AACD,GAFuB,CAAxB,CAAA;AAGA,EAAA,MAAMI,WAAW,GAAA,CAAA,qBAAA,GACfH,OAAO,CAACI,KAAR,CAAcD,WADC,KACcE,IAAAA,GAAAA,qBAAAA,GAAAA,cAAc,CAACL,OAAO,CAACI,KAAR,CAAcE,cAAf,CAD7C,CAAA;AAEA,EAAA,MAAMC,QAAQ,GAAG,IAAIC,gBAAJ,CACfL,WADe,EAEfA,WAAW,CAACM,sBAAZ,CAAmCT,OAAO,CAACI,KAA3C,CAFe,CAAjB,CAAA;EAIA,MAAMM,KAAK,GAAGC,QAAQ,CAACJ,QAAQ,CAACK,gBAAT,EAAD,CAAtB,CAAA;AAEA,EAAA,MAAMC,WAAW,GAAGN,QAAQ,CAACO,SAAT,CAAoBC,MAAD,IAAY;AACjDC,IAAAA,WAAW,CAACN,KAAD,EAAQK,MAAR,CAAX,CAAA;AACD,GAFmB,CAApB,CAAA;;AAIA,EAAA,MAAME,MAAM,GAAG,CACbC,SADa,EAEbC,aAFa,KAGV;IACHZ,QAAQ,CAACU,MAAT,CAAgBC,SAAhB,EAA2BC,aAA3B,CAA0CC,CAAAA,KAA1C,CAAgD,MAAM;KAAtD,CAAA,CAAA;GAJF,CAAA;;EASAC,KAAK,CAACrB,OAAD,EAAU,MAAM;IACnBO,QAAQ,CAACe,UAAT,CAAoBnB,WAAW,CAACM,sBAAZ,CAAmCT,OAAO,CAACI,KAA3C,CAApB,CAAA,CAAA;AACD,GAFI,CAAL,CAAA;AAIAmB,EAAAA,cAAc,CAAC,MAAM;IACnBV,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;EAIA,MAAMW,UAAU,GAAGC,MAAM,CAACC,QAAQ,CAAChB,KAAD,CAAT,CAAzB,CAAA;AAIAW,EAAAA,KAAK,CACH,MAAMX,KAAK,CAACiB,KADT,EAEFA,KAAD,IAAW;AACT,IAAA,IACEA,KAAK,IACLC,gBAAgB,CAAC5B,OAAO,CAACI,KAAR,CAAcyB,gBAAf,EAAiC,CAACF,KAAD,CAAjC,CAFlB,EAGE;AACA,MAAA,MAAMA,KAAN,CAAA;AACD,KAAA;AACF,GATE,CAAL,CAAA;EAYA,OAAO,EACL,GAAGH,UADE;IAELP,MAFK;IAGLa,WAAW,EAAEpB,KAAK,CAACO,MAHd;IAILc,KAAK,EAAErB,KAAK,CAACqB,KAAAA;GAJf,CAAA;AAMD,CAAA;AAEM,SAAS7B,iBAAT,CAMLL,IANK,EAULC,IAVK,EAaLC,IAbK,EAkBL;AACA,EAAA,MAAMiC,SAAS,GAAGC,KAAK,CAACpC,IAAD,CAAvB,CAAA;AACA,EAAA,MAAMqC,SAAS,GAAGD,KAAK,CAACnC,IAAD,CAAvB,CAAA;EACA,IAAIE,OAAO,GAAGgC,SAAd,CAAA;;AACA,EAAA,IAAIG,aAAa,CAACH,SAAD,CAAjB,EAA8B;AAC5B,IAAA,IAAI,OAAOE,SAAP,KAAqB,UAAzB,EAAqC;AACnC,MAAA,MAAME,SAAS,GAAGH,KAAK,CAAClC,IAAD,CAAvB,CAAA;MACAC,OAAO,GAAG,EAAE,GAAGoC,SAAL;AAAgBC,QAAAA,WAAW,EAAEL,SAA7B;AAAwCM,QAAAA,UAAU,EAAEJ,SAAAA;OAA9D,CAAA;AACD,KAHD,MAGO;MACLlC,OAAO,GAAG,EAAE,GAAGkC,SAAL;AAAgBG,QAAAA,WAAW,EAAEL,SAAAA;OAAvC,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAI,OAAOA,SAAP,KAAqB,UAAzB,EAAqC;IACnChC,OAAO,GAAG,EAAE,GAAGkC,SAAL;AAAgBI,MAAAA,UAAU,EAAEN,SAAAA;KAAtC,CAAA;AACD,GAAA;;EAED,OAAOO,cAAc,CAACvC,OAAD,CAArB,CAAA;AAMD;;;;"}
@@ -32,6 +32,11 @@ function useMutation(arg1, arg2, arg3) {
32
32
  unsubscribe();
33
33
  });
34
34
  const resultRefs = vueDemi.toRefs(vueDemi.readonly(state));
35
+ vueDemi.watch(() => state.error, error => {
36
+ if (error && utils.shouldThrowError(options.value.useErrorBoundary, [error])) {
37
+ throw error;
38
+ }
39
+ });
35
40
  return { ...resultRefs,
36
41
  mutate,
37
42
  mutateAsync: state.mutate,
@@ -1 +1 @@
1
- {"version":3,"file":"useMutation.js","sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n unref,\n watch,\n} from 'vue-demi'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { cloneDeepUnref, isMutationKey, updateState } from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n MutateFunction,\n MutateOptions,\n MutationFunction,\n MutationKey,\n MutationObserverOptions,\n MutationObserverResult,\n} from '@tanstack/query-core'\nimport type {\n DistributiveOmit,\n MaybeRef,\n MaybeRefDeep,\n WithQueryClientKey,\n} from './types'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<TData, TError, TVariables, TContext> =\n WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >\n\nexport type VueMutationObserverOptions<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> = {\n [Property in keyof UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >]: MaybeRefDeep<\n UseMutationOptions<TData, TError, TVariables, TContext>[Property]\n >\n}\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = unknown,\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 = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n options: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationFn: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n mutationFn?: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey' | 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const options = computed(() => {\n return parseMutationArgs(arg1, arg2, arg3)\n })\n const queryClient =\n options.value.queryClient ?? useQueryClient(options.value.queryClientKey)\n const observer = new MutationObserver(\n queryClient,\n queryClient.defaultMutationOptions(options.value),\n )\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(options, () => {\n observer.setOptions(queryClient.defaultMutationOptions(options.value))\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\nexport function parseMutationArgs<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n> {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n let options = plainArg1\n if (isMutationKey(plainArg1)) {\n if (typeof plainArg2 === 'function') {\n const plainArg3 = unref(arg3)\n options = { ...plainArg3, mutationKey: plainArg1, mutationFn: plainArg2 }\n } else {\n options = { ...plainArg2, mutationKey: plainArg1 }\n }\n }\n\n if (typeof plainArg1 === 'function') {\n options = { ...plainArg2, mutationFn: plainArg1 }\n }\n\n return cloneDeepUnref(options) as UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >\n}\n"],"names":["useMutation","arg1","arg2","arg3","options","computed","parseMutationArgs","queryClient","value","useQueryClient","queryClientKey","observer","MutationObserver","defaultMutationOptions","state","reactive","getCurrentResult","unsubscribe","subscribe","result","updateState","mutate","variables","mutateOptions","catch","watch","setOptions","onScopeDispose","resultRefs","toRefs","readonly","mutateAsync","reset","plainArg1","unref","plainArg2","isMutationKey","plainArg3","mutationKey","mutationFn","cloneDeepUnref"],"mappings":";;;;;;;;;AAgIO,SAASA,WAAT,CAMLC,IANK,EAULC,IAVK,EAaLC,IAbK,EAgBuD;AAAA,EAAA,IAAA,qBAAA,CAAA;;AAC5D,EAAA,MAAMC,OAAO,GAAGC,gBAAQ,CAAC,MAAM;AAC7B,IAAA,OAAOC,iBAAiB,CAACL,IAAD,EAAOC,IAAP,EAAaC,IAAb,CAAxB,CAAA;AACD,GAFuB,CAAxB,CAAA;AAGA,EAAA,MAAMI,WAAW,GAAA,CAAA,qBAAA,GACfH,OAAO,CAACI,KAAR,CAAcD,WADC,KACcE,IAAAA,GAAAA,qBAAAA,GAAAA,6BAAc,CAACL,OAAO,CAACI,KAAR,CAAcE,cAAf,CAD7C,CAAA;AAEA,EAAA,MAAMC,QAAQ,GAAG,IAAIC,0BAAJ,CACfL,WADe,EAEfA,WAAW,CAACM,sBAAZ,CAAmCT,OAAO,CAACI,KAA3C,CAFe,CAAjB,CAAA;EAIA,MAAMM,KAAK,GAAGC,gBAAQ,CAACJ,QAAQ,CAACK,gBAAT,EAAD,CAAtB,CAAA;AAEA,EAAA,MAAMC,WAAW,GAAGN,QAAQ,CAACO,SAAT,CAAoBC,MAAD,IAAY;AACjDC,IAAAA,iBAAW,CAACN,KAAD,EAAQK,MAAR,CAAX,CAAA;AACD,GAFmB,CAApB,CAAA;;AAIA,EAAA,MAAME,MAAM,GAAG,CACbC,SADa,EAEbC,aAFa,KAGV;IACHZ,QAAQ,CAACU,MAAT,CAAgBC,SAAhB,EAA2BC,aAA3B,CAA0CC,CAAAA,KAA1C,CAAgD,MAAM;KAAtD,CAAA,CAAA;GAJF,CAAA;;EASAC,aAAK,CAACrB,OAAD,EAAU,MAAM;IACnBO,QAAQ,CAACe,UAAT,CAAoBnB,WAAW,CAACM,sBAAZ,CAAmCT,OAAO,CAACI,KAA3C,CAApB,CAAA,CAAA;AACD,GAFI,CAAL,CAAA;AAIAmB,EAAAA,sBAAc,CAAC,MAAM;IACnBV,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;EAIA,MAAMW,UAAU,GAAGC,cAAM,CAACC,gBAAQ,CAAChB,KAAD,CAAT,CAAzB,CAAA;EAIA,OAAO,EACL,GAAGc,UADE;IAELP,MAFK;IAGLU,WAAW,EAAEjB,KAAK,CAACO,MAHd;IAILW,KAAK,EAAElB,KAAK,CAACkB,KAAAA;GAJf,CAAA;AAMD,CAAA;AAEM,SAAS1B,iBAAT,CAMLL,IANK,EAULC,IAVK,EAaLC,IAbK,EAkBL;AACA,EAAA,MAAM8B,SAAS,GAAGC,aAAK,CAACjC,IAAD,CAAvB,CAAA;AACA,EAAA,MAAMkC,SAAS,GAAGD,aAAK,CAAChC,IAAD,CAAvB,CAAA;EACA,IAAIE,OAAO,GAAG6B,SAAd,CAAA;;AACA,EAAA,IAAIG,mBAAa,CAACH,SAAD,CAAjB,EAA8B;AAC5B,IAAA,IAAI,OAAOE,SAAP,KAAqB,UAAzB,EAAqC;AACnC,MAAA,MAAME,SAAS,GAAGH,aAAK,CAAC/B,IAAD,CAAvB,CAAA;MACAC,OAAO,GAAG,EAAE,GAAGiC,SAAL;AAAgBC,QAAAA,WAAW,EAAEL,SAA7B;AAAwCM,QAAAA,UAAU,EAAEJ,SAAAA;OAA9D,CAAA;AACD,KAHD,MAGO;MACL/B,OAAO,GAAG,EAAE,GAAG+B,SAAL;AAAgBG,QAAAA,WAAW,EAAEL,SAAAA;OAAvC,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAI,OAAOA,SAAP,KAAqB,UAAzB,EAAqC;IACnC7B,OAAO,GAAG,EAAE,GAAG+B,SAAL;AAAgBI,MAAAA,UAAU,EAAEN,SAAAA;KAAtC,CAAA;AACD,GAAA;;EAED,OAAOO,oBAAc,CAACpC,OAAD,CAArB,CAAA;AAMD;;;;;"}
1
+ {"version":3,"file":"useMutation.js","sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n unref,\n watch,\n} from 'vue-demi'\nimport { MutationObserver } from '@tanstack/query-core'\nimport {\n cloneDeepUnref,\n isMutationKey,\n shouldThrowError,\n updateState,\n} from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n MutateFunction,\n MutateOptions,\n MutationFunction,\n MutationKey,\n MutationObserverOptions,\n MutationObserverResult,\n} from '@tanstack/query-core'\nimport type {\n DistributiveOmit,\n MaybeRef,\n MaybeRefDeep,\n WithQueryClientKey,\n} from './types'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<TData, TError, TVariables, TContext> =\n WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >\n\nexport type VueMutationObserverOptions<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> = {\n [Property in keyof UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >]: MaybeRefDeep<\n UseMutationOptions<TData, TError, TVariables, TContext>[Property]\n >\n}\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = unknown,\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 = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n options: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationFn: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n mutationFn?: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey' | 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const options = computed(() => {\n return parseMutationArgs(arg1, arg2, arg3)\n })\n const queryClient =\n options.value.queryClient ?? useQueryClient(options.value.queryClientKey)\n const observer = new MutationObserver(\n queryClient,\n queryClient.defaultMutationOptions(options.value),\n )\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(options, () => {\n observer.setOptions(queryClient.defaultMutationOptions(options.value))\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 watch(\n () => state.error,\n (error) => {\n if (\n error &&\n shouldThrowError(options.value.useErrorBoundary, [error as TError])\n ) {\n throw error\n }\n },\n )\n\n return {\n ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset,\n }\n}\n\nexport function parseMutationArgs<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n> {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n let options = plainArg1\n if (isMutationKey(plainArg1)) {\n if (typeof plainArg2 === 'function') {\n const plainArg3 = unref(arg3)\n options = { ...plainArg3, mutationKey: plainArg1, mutationFn: plainArg2 }\n } else {\n options = { ...plainArg2, mutationKey: plainArg1 }\n }\n }\n\n if (typeof plainArg1 === 'function') {\n options = { ...plainArg2, mutationFn: plainArg1 }\n }\n\n return cloneDeepUnref(options) as UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >\n}\n"],"names":["useMutation","arg1","arg2","arg3","options","computed","parseMutationArgs","queryClient","value","useQueryClient","queryClientKey","observer","MutationObserver","defaultMutationOptions","state","reactive","getCurrentResult","unsubscribe","subscribe","result","updateState","mutate","variables","mutateOptions","catch","watch","setOptions","onScopeDispose","resultRefs","toRefs","readonly","error","shouldThrowError","useErrorBoundary","mutateAsync","reset","plainArg1","unref","plainArg2","isMutationKey","plainArg3","mutationKey","mutationFn","cloneDeepUnref"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { computed, reactive, watch, onScopeDispose, toRefs, readonly, unref } from 'vue-demi';
2
2
  import { MutationObserver } from '@tanstack/query-core';
3
- import { updateState, isMutationKey, cloneDeepUnref } from './utils.mjs';
3
+ import { updateState, shouldThrowError, isMutationKey, cloneDeepUnref } from './utils.mjs';
4
4
  import { useQueryClient } from './useQueryClient.mjs';
5
5
 
6
6
  function useMutation(arg1, arg2, arg3) {
@@ -28,6 +28,11 @@ function useMutation(arg1, arg2, arg3) {
28
28
  unsubscribe();
29
29
  });
30
30
  const resultRefs = toRefs(readonly(state));
31
+ watch(() => state.error, error => {
32
+ if (error && shouldThrowError(options.value.useErrorBoundary, [error])) {
33
+ throw error;
34
+ }
35
+ });
31
36
  return { ...resultRefs,
32
37
  mutate,
33
38
  mutateAsync: state.mutate,
@@ -1 +1 @@
1
- {"version":3,"file":"useMutation.mjs","sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n unref,\n watch,\n} from 'vue-demi'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { cloneDeepUnref, isMutationKey, updateState } from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n MutateFunction,\n MutateOptions,\n MutationFunction,\n MutationKey,\n MutationObserverOptions,\n MutationObserverResult,\n} from '@tanstack/query-core'\nimport type {\n DistributiveOmit,\n MaybeRef,\n MaybeRefDeep,\n WithQueryClientKey,\n} from './types'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<TData, TError, TVariables, TContext> =\n WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >\n\nexport type VueMutationObserverOptions<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> = {\n [Property in keyof UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >]: MaybeRefDeep<\n UseMutationOptions<TData, TError, TVariables, TContext>[Property]\n >\n}\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = unknown,\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 = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n options: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationFn: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n mutationFn?: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey' | 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const options = computed(() => {\n return parseMutationArgs(arg1, arg2, arg3)\n })\n const queryClient =\n options.value.queryClient ?? useQueryClient(options.value.queryClientKey)\n const observer = new MutationObserver(\n queryClient,\n queryClient.defaultMutationOptions(options.value),\n )\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(options, () => {\n observer.setOptions(queryClient.defaultMutationOptions(options.value))\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\nexport function parseMutationArgs<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n> {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n let options = plainArg1\n if (isMutationKey(plainArg1)) {\n if (typeof plainArg2 === 'function') {\n const plainArg3 = unref(arg3)\n options = { ...plainArg3, mutationKey: plainArg1, mutationFn: plainArg2 }\n } else {\n options = { ...plainArg2, mutationKey: plainArg1 }\n }\n }\n\n if (typeof plainArg1 === 'function') {\n options = { ...plainArg2, mutationFn: plainArg1 }\n }\n\n return cloneDeepUnref(options) as UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >\n}\n"],"names":["useMutation","arg1","arg2","arg3","options","computed","parseMutationArgs","queryClient","value","useQueryClient","queryClientKey","observer","MutationObserver","defaultMutationOptions","state","reactive","getCurrentResult","unsubscribe","subscribe","result","updateState","mutate","variables","mutateOptions","catch","watch","setOptions","onScopeDispose","resultRefs","toRefs","readonly","mutateAsync","reset","plainArg1","unref","plainArg2","isMutationKey","plainArg3","mutationKey","mutationFn","cloneDeepUnref"],"mappings":";;;;;AAgIO,SAASA,WAAT,CAMLC,IANK,EAULC,IAVK,EAaLC,IAbK,EAgBuD;AAAA,EAAA,IAAA,qBAAA,CAAA;;AAC5D,EAAA,MAAMC,OAAO,GAAGC,QAAQ,CAAC,MAAM;AAC7B,IAAA,OAAOC,iBAAiB,CAACL,IAAD,EAAOC,IAAP,EAAaC,IAAb,CAAxB,CAAA;AACD,GAFuB,CAAxB,CAAA;AAGA,EAAA,MAAMI,WAAW,GAAA,CAAA,qBAAA,GACfH,OAAO,CAACI,KAAR,CAAcD,WADC,KACcE,IAAAA,GAAAA,qBAAAA,GAAAA,cAAc,CAACL,OAAO,CAACI,KAAR,CAAcE,cAAf,CAD7C,CAAA;AAEA,EAAA,MAAMC,QAAQ,GAAG,IAAIC,gBAAJ,CACfL,WADe,EAEfA,WAAW,CAACM,sBAAZ,CAAmCT,OAAO,CAACI,KAA3C,CAFe,CAAjB,CAAA;EAIA,MAAMM,KAAK,GAAGC,QAAQ,CAACJ,QAAQ,CAACK,gBAAT,EAAD,CAAtB,CAAA;AAEA,EAAA,MAAMC,WAAW,GAAGN,QAAQ,CAACO,SAAT,CAAoBC,MAAD,IAAY;AACjDC,IAAAA,WAAW,CAACN,KAAD,EAAQK,MAAR,CAAX,CAAA;AACD,GAFmB,CAApB,CAAA;;AAIA,EAAA,MAAME,MAAM,GAAG,CACbC,SADa,EAEbC,aAFa,KAGV;IACHZ,QAAQ,CAACU,MAAT,CAAgBC,SAAhB,EAA2BC,aAA3B,CAA0CC,CAAAA,KAA1C,CAAgD,MAAM;KAAtD,CAAA,CAAA;GAJF,CAAA;;EASAC,KAAK,CAACrB,OAAD,EAAU,MAAM;IACnBO,QAAQ,CAACe,UAAT,CAAoBnB,WAAW,CAACM,sBAAZ,CAAmCT,OAAO,CAACI,KAA3C,CAApB,CAAA,CAAA;AACD,GAFI,CAAL,CAAA;AAIAmB,EAAAA,cAAc,CAAC,MAAM;IACnBV,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;EAIA,MAAMW,UAAU,GAAGC,MAAM,CAACC,QAAQ,CAAChB,KAAD,CAAT,CAAzB,CAAA;EAIA,OAAO,EACL,GAAGc,UADE;IAELP,MAFK;IAGLU,WAAW,EAAEjB,KAAK,CAACO,MAHd;IAILW,KAAK,EAAElB,KAAK,CAACkB,KAAAA;GAJf,CAAA;AAMD,CAAA;AAEM,SAAS1B,iBAAT,CAMLL,IANK,EAULC,IAVK,EAaLC,IAbK,EAkBL;AACA,EAAA,MAAM8B,SAAS,GAAGC,KAAK,CAACjC,IAAD,CAAvB,CAAA;AACA,EAAA,MAAMkC,SAAS,GAAGD,KAAK,CAAChC,IAAD,CAAvB,CAAA;EACA,IAAIE,OAAO,GAAG6B,SAAd,CAAA;;AACA,EAAA,IAAIG,aAAa,CAACH,SAAD,CAAjB,EAA8B;AAC5B,IAAA,IAAI,OAAOE,SAAP,KAAqB,UAAzB,EAAqC;AACnC,MAAA,MAAME,SAAS,GAAGH,KAAK,CAAC/B,IAAD,CAAvB,CAAA;MACAC,OAAO,GAAG,EAAE,GAAGiC,SAAL;AAAgBC,QAAAA,WAAW,EAAEL,SAA7B;AAAwCM,QAAAA,UAAU,EAAEJ,SAAAA;OAA9D,CAAA;AACD,KAHD,MAGO;MACL/B,OAAO,GAAG,EAAE,GAAG+B,SAAL;AAAgBG,QAAAA,WAAW,EAAEL,SAAAA;OAAvC,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAI,OAAOA,SAAP,KAAqB,UAAzB,EAAqC;IACnC7B,OAAO,GAAG,EAAE,GAAG+B,SAAL;AAAgBI,MAAAA,UAAU,EAAEN,SAAAA;KAAtC,CAAA;AACD,GAAA;;EAED,OAAOO,cAAc,CAACpC,OAAD,CAArB,CAAA;AAMD;;;;"}
1
+ {"version":3,"file":"useMutation.mjs","sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n unref,\n watch,\n} from 'vue-demi'\nimport { MutationObserver } from '@tanstack/query-core'\nimport {\n cloneDeepUnref,\n isMutationKey,\n shouldThrowError,\n updateState,\n} from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n MutateFunction,\n MutateOptions,\n MutationFunction,\n MutationKey,\n MutationObserverOptions,\n MutationObserverResult,\n} from '@tanstack/query-core'\nimport type {\n DistributiveOmit,\n MaybeRef,\n MaybeRefDeep,\n WithQueryClientKey,\n} from './types'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<TData, TError, TVariables, TContext> =\n WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >\n\nexport type VueMutationObserverOptions<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> = {\n [Property in keyof UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >]: MaybeRefDeep<\n UseMutationOptions<TData, TError, TVariables, TContext>[Property]\n >\n}\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = unknown,\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 = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n options: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationFn: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n mutationFn?: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey' | 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const options = computed(() => {\n return parseMutationArgs(arg1, arg2, arg3)\n })\n const queryClient =\n options.value.queryClient ?? useQueryClient(options.value.queryClientKey)\n const observer = new MutationObserver(\n queryClient,\n queryClient.defaultMutationOptions(options.value),\n )\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(options, () => {\n observer.setOptions(queryClient.defaultMutationOptions(options.value))\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 watch(\n () => state.error,\n (error) => {\n if (\n error &&\n shouldThrowError(options.value.useErrorBoundary, [error as TError])\n ) {\n throw error\n }\n },\n )\n\n return {\n ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset,\n }\n}\n\nexport function parseMutationArgs<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n> {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n let options = plainArg1\n if (isMutationKey(plainArg1)) {\n if (typeof plainArg2 === 'function') {\n const plainArg3 = unref(arg3)\n options = { ...plainArg3, mutationKey: plainArg1, mutationFn: plainArg2 }\n } else {\n options = { ...plainArg2, mutationKey: plainArg1 }\n }\n }\n\n if (typeof plainArg1 === 'function') {\n options = { ...plainArg2, mutationFn: plainArg1 }\n }\n\n return cloneDeepUnref(options) as UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >\n}\n"],"names":["useMutation","arg1","arg2","arg3","options","computed","parseMutationArgs","queryClient","value","useQueryClient","queryClientKey","observer","MutationObserver","defaultMutationOptions","state","reactive","getCurrentResult","unsubscribe","subscribe","result","updateState","mutate","variables","mutateOptions","catch","watch","setOptions","onScopeDispose","resultRefs","toRefs","readonly","error","shouldThrowError","useErrorBoundary","mutateAsync","reset","plainArg1","unref","plainArg2","isMutationKey","plainArg3","mutationKey","mutationFn","cloneDeepUnref"],"mappings":";;;;;AAqIO,SAASA,WAAT,CAMLC,IANK,EAULC,IAVK,EAaLC,IAbK,EAgBuD;AAAA,EAAA,IAAA,qBAAA,CAAA;;AAC5D,EAAA,MAAMC,OAAO,GAAGC,QAAQ,CAAC,MAAM;AAC7B,IAAA,OAAOC,iBAAiB,CAACL,IAAD,EAAOC,IAAP,EAAaC,IAAb,CAAxB,CAAA;AACD,GAFuB,CAAxB,CAAA;AAGA,EAAA,MAAMI,WAAW,GAAA,CAAA,qBAAA,GACfH,OAAO,CAACI,KAAR,CAAcD,WADC,KACcE,IAAAA,GAAAA,qBAAAA,GAAAA,cAAc,CAACL,OAAO,CAACI,KAAR,CAAcE,cAAf,CAD7C,CAAA;AAEA,EAAA,MAAMC,QAAQ,GAAG,IAAIC,gBAAJ,CACfL,WADe,EAEfA,WAAW,CAACM,sBAAZ,CAAmCT,OAAO,CAACI,KAA3C,CAFe,CAAjB,CAAA;EAIA,MAAMM,KAAK,GAAGC,QAAQ,CAACJ,QAAQ,CAACK,gBAAT,EAAD,CAAtB,CAAA;AAEA,EAAA,MAAMC,WAAW,GAAGN,QAAQ,CAACO,SAAT,CAAoBC,MAAD,IAAY;AACjDC,IAAAA,WAAW,CAACN,KAAD,EAAQK,MAAR,CAAX,CAAA;AACD,GAFmB,CAApB,CAAA;;AAIA,EAAA,MAAME,MAAM,GAAG,CACbC,SADa,EAEbC,aAFa,KAGV;IACHZ,QAAQ,CAACU,MAAT,CAAgBC,SAAhB,EAA2BC,aAA3B,CAA0CC,CAAAA,KAA1C,CAAgD,MAAM;KAAtD,CAAA,CAAA;GAJF,CAAA;;EASAC,KAAK,CAACrB,OAAD,EAAU,MAAM;IACnBO,QAAQ,CAACe,UAAT,CAAoBnB,WAAW,CAACM,sBAAZ,CAAmCT,OAAO,CAACI,KAA3C,CAApB,CAAA,CAAA;AACD,GAFI,CAAL,CAAA;AAIAmB,EAAAA,cAAc,CAAC,MAAM;IACnBV,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;EAIA,MAAMW,UAAU,GAAGC,MAAM,CAACC,QAAQ,CAAChB,KAAD,CAAT,CAAzB,CAAA;AAIAW,EAAAA,KAAK,CACH,MAAMX,KAAK,CAACiB,KADT,EAEFA,KAAD,IAAW;AACT,IAAA,IACEA,KAAK,IACLC,gBAAgB,CAAC5B,OAAO,CAACI,KAAR,CAAcyB,gBAAf,EAAiC,CAACF,KAAD,CAAjC,CAFlB,EAGE;AACA,MAAA,MAAMA,KAAN,CAAA;AACD,KAAA;AACF,GATE,CAAL,CAAA;EAYA,OAAO,EACL,GAAGH,UADE;IAELP,MAFK;IAGLa,WAAW,EAAEpB,KAAK,CAACO,MAHd;IAILc,KAAK,EAAErB,KAAK,CAACqB,KAAAA;GAJf,CAAA;AAMD,CAAA;AAEM,SAAS7B,iBAAT,CAMLL,IANK,EAULC,IAVK,EAaLC,IAbK,EAkBL;AACA,EAAA,MAAMiC,SAAS,GAAGC,KAAK,CAACpC,IAAD,CAAvB,CAAA;AACA,EAAA,MAAMqC,SAAS,GAAGD,KAAK,CAACnC,IAAD,CAAvB,CAAA;EACA,IAAIE,OAAO,GAAGgC,SAAd,CAAA;;AACA,EAAA,IAAIG,aAAa,CAACH,SAAD,CAAjB,EAA8B;AAC5B,IAAA,IAAI,OAAOE,SAAP,KAAqB,UAAzB,EAAqC;AACnC,MAAA,MAAME,SAAS,GAAGH,KAAK,CAAClC,IAAD,CAAvB,CAAA;MACAC,OAAO,GAAG,EAAE,GAAGoC,SAAL;AAAgBC,QAAAA,WAAW,EAAEL,SAA7B;AAAwCM,QAAAA,UAAU,EAAEJ,SAAAA;OAA9D,CAAA;AACD,KAHD,MAGO;MACLlC,OAAO,GAAG,EAAE,GAAGkC,SAAL;AAAgBG,QAAAA,WAAW,EAAEL,SAAAA;OAAvC,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAI,OAAOA,SAAP,KAAqB,UAAzB,EAAqC;IACnChC,OAAO,GAAG,EAAE,GAAGkC,SAAL;AAAgBI,MAAAA,UAAU,EAAEN,SAAAA;KAAtC,CAAA;AACD,GAAA;;EAED,OAAOO,cAAc,CAACvC,OAAD,CAArB,CAAA;AAMD;;;;"}
@@ -7,4 +7,5 @@ export declare function isMutationKey(value: unknown): value is MutationKey;
7
7
  export declare function updateState(state: Record<string, unknown>, update: Record<string, any>): void;
8
8
  export declare function cloneDeep<T>(value: T, customizer?: (val: unknown) => unknown | void): T;
9
9
  export declare function cloneDeepUnref<T>(obj: T): UnwrapRef<T>;
10
+ export declare function shouldThrowError<T extends (...args: any[]) => boolean>(_useErrorBoundary: boolean | T | undefined, params: Parameters<T>): boolean;
10
11
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEzC,eAAO,MAAM,gBAAgB,qBAAqB,CAAA;AAElD,wBAAgB,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,UAGxC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE5D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,IAAI,CAIN;AAED,wBAAgB,SAAS,CAAC,CAAC,EACzB,KAAK,EAAE,CAAC,EACR,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI,GAC5C,CAAC,CAqBH;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAMtD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEzC,eAAO,MAAM,gBAAgB,qBAAqB,CAAA;AAElD,wBAAgB,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,UAGxC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE5D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,IAAI,CAIN;AAED,wBAAgB,SAAS,CAAC,CAAC,EACzB,KAAK,EAAE,CAAC,EACR,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI,GAC5C,CAAC,CAqBH;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAMtD;AAWD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,EACpE,iBAAiB,EAAE,OAAO,GAAG,CAAC,GAAG,SAAS,EAC1C,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GACpB,OAAO,CAOT"}
@@ -54,5 +54,14 @@ function isPlainObject(value) {
54
54
  return prototype === null || prototype === Object.prototype;
55
55
  }
56
56
 
57
- export { VUE_QUERY_CLIENT, cloneDeep, cloneDeepUnref, getClientKey, isMutationKey, isQueryKey, updateState };
57
+ function shouldThrowError(_useErrorBoundary, params) {
58
+ // Allow useErrorBoundary function to override throwing behavior on a per-error basis
59
+ if (typeof _useErrorBoundary === 'function') {
60
+ return _useErrorBoundary(...params);
61
+ }
62
+
63
+ return !!_useErrorBoundary;
64
+ }
65
+
66
+ export { VUE_QUERY_CLIENT, cloneDeep, cloneDeepUnref, getClientKey, isMutationKey, isQueryKey, shouldThrowError, updateState };
58
67
  //# sourceMappingURL=utils.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.esm.js","sources":["../../src/utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isRef, unref } from 'vue-demi'\nimport type { MutationKey, QueryKey } from '@tanstack/query-core'\nimport type { UnwrapRef } from 'vue-demi'\n\nexport const VUE_QUERY_CLIENT = 'VUE_QUERY_CLIENT'\n\nexport function getClientKey(key?: string) {\n const suffix = key ? `:${key}` : ''\n return `${VUE_QUERY_CLIENT}${suffix}`\n}\n\nexport function isQueryKey(value: unknown): value is QueryKey {\n return Array.isArray(value)\n}\n\nexport function isMutationKey(value: unknown): value is MutationKey {\n return Array.isArray(value)\n}\n\nexport function updateState(\n state: Record<string, unknown>,\n update: Record<string, any>,\n): void {\n Object.keys(state).forEach((key) => {\n state[key] = update[key]\n })\n}\n\nexport function cloneDeep<T>(\n value: T,\n customizer?: (val: unknown) => unknown | void,\n): T {\n if (customizer) {\n const result = customizer(value)\n if (result !== undefined || isRef(value)) {\n return result as typeof value\n }\n }\n\n if (Array.isArray(value)) {\n return value.map((val) => cloneDeep(val, customizer)) as typeof value\n }\n\n if (typeof value === 'object' && isPlainObject(value)) {\n const entries = Object.entries(value).map(([key, val]) => [\n key,\n cloneDeep(val, customizer),\n ])\n return Object.fromEntries(entries)\n }\n\n return value\n}\n\nexport function cloneDeepUnref<T>(obj: T): UnwrapRef<T> {\n return cloneDeep(obj, (val) => {\n if (isRef(val)) {\n return cloneDeepUnref(unref(val))\n }\n }) as UnwrapRef<typeof obj>\n}\n\nfunction isPlainObject(value: unknown): value is Object {\n if (Object.prototype.toString.call(value) !== '[object Object]') {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n return prototype === null || prototype === Object.prototype\n}\n"],"names":["VUE_QUERY_CLIENT","getClientKey","key","suffix","isQueryKey","value","Array","isArray","isMutationKey","updateState","state","update","Object","keys","forEach","cloneDeep","customizer","result","undefined","isRef","map","val","isPlainObject","entries","fromEntries","cloneDeepUnref","obj","unref","prototype","toString","call","getPrototypeOf"],"mappings":";;AAAA;AAKO,MAAMA,gBAAgB,GAAG,mBAAzB;AAEA,SAASC,YAAT,CAAsBC,GAAtB,EAAoC;AACzC,EAAA,MAAMC,MAAM,GAAGD,GAAG,GAAOA,GAAAA,GAAAA,GAAP,GAAe,EAAjC,CAAA;EACA,OAAUF,EAAAA,GAAAA,gBAAV,GAA6BG,MAA7B,CAAA;AACD,CAAA;AAEM,SAASC,UAAT,CAAoBC,KAApB,EAAuD;AAC5D,EAAA,OAAOC,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAP,CAAA;AACD,CAAA;AAEM,SAASG,aAAT,CAAuBH,KAAvB,EAA6D;AAClE,EAAA,OAAOC,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAP,CAAA;AACD,CAAA;AAEM,SAASI,WAAT,CACLC,KADK,EAELC,MAFK,EAGC;EACNC,MAAM,CAACC,IAAP,CAAYH,KAAZ,EAAmBI,OAAnB,CAA4BZ,GAAD,IAAS;AAClCQ,IAAAA,KAAK,CAACR,GAAD,CAAL,GAAaS,MAAM,CAACT,GAAD,CAAnB,CAAA;GADF,CAAA,CAAA;AAGD,CAAA;AAEM,SAASa,SAAT,CACLV,KADK,EAELW,UAFK,EAGF;AACH,EAAA,IAAIA,UAAJ,EAAgB;AACd,IAAA,MAAMC,MAAM,GAAGD,UAAU,CAACX,KAAD,CAAzB,CAAA;;IACA,IAAIY,MAAM,KAAKC,SAAX,IAAwBC,KAAK,CAACd,KAAD,CAAjC,EAA0C;AACxC,MAAA,OAAOY,MAAP,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAIX,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAJ,EAA0B;AACxB,IAAA,OAAOA,KAAK,CAACe,GAAN,CAAWC,GAAD,IAASN,SAAS,CAACM,GAAD,EAAML,UAAN,CAA5B,CAAP,CAAA;AACD,GAAA;;EAED,IAAI,OAAOX,KAAP,KAAiB,QAAjB,IAA6BiB,aAAa,CAACjB,KAAD,CAA9C,EAAuD;IACrD,MAAMkB,OAAO,GAAGX,MAAM,CAACW,OAAP,CAAelB,KAAf,CAAsBe,CAAAA,GAAtB,CAA0B,CAAC,CAAClB,GAAD,EAAMmB,GAAN,CAAD,KAAgB,CACxDnB,GADwD,EAExDa,SAAS,CAACM,GAAD,EAAML,UAAN,CAF+C,CAA1C,CAAhB,CAAA;AAIA,IAAA,OAAOJ,MAAM,CAACY,WAAP,CAAmBD,OAAnB,CAAP,CAAA;AACD,GAAA;;AAED,EAAA,OAAOlB,KAAP,CAAA;AACD,CAAA;AAEM,SAASoB,cAAT,CAA2BC,GAA3B,EAAiD;AACtD,EAAA,OAAOX,SAAS,CAACW,GAAD,EAAOL,GAAD,IAAS;AAC7B,IAAA,IAAIF,KAAK,CAACE,GAAD,CAAT,EAAgB;AACd,MAAA,OAAOI,cAAc,CAACE,KAAK,CAACN,GAAD,CAAN,CAArB,CAAA;AACD,KAAA;AACF,GAJe,CAAhB,CAAA;AAKD,CAAA;;AAED,SAASC,aAAT,CAAuBjB,KAAvB,EAAwD;EACtD,IAAIO,MAAM,CAACgB,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BzB,KAA/B,CAA0C,KAAA,iBAA9C,EAAiE;AAC/D,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;AAED,EAAA,MAAMuB,SAAS,GAAGhB,MAAM,CAACmB,cAAP,CAAsB1B,KAAtB,CAAlB,CAAA;EACA,OAAOuB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAKhB,MAAM,CAACgB,SAAlD,CAAA;AACD;;;;"}
1
+ {"version":3,"file":"utils.esm.js","sources":["../../src/utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isRef, unref } from 'vue-demi'\nimport type { MutationKey, QueryKey } from '@tanstack/query-core'\nimport type { UnwrapRef } from 'vue-demi'\n\nexport const VUE_QUERY_CLIENT = 'VUE_QUERY_CLIENT'\n\nexport function getClientKey(key?: string) {\n const suffix = key ? `:${key}` : ''\n return `${VUE_QUERY_CLIENT}${suffix}`\n}\n\nexport function isQueryKey(value: unknown): value is QueryKey {\n return Array.isArray(value)\n}\n\nexport function isMutationKey(value: unknown): value is MutationKey {\n return Array.isArray(value)\n}\n\nexport function updateState(\n state: Record<string, unknown>,\n update: Record<string, any>,\n): void {\n Object.keys(state).forEach((key) => {\n state[key] = update[key]\n })\n}\n\nexport function cloneDeep<T>(\n value: T,\n customizer?: (val: unknown) => unknown | void,\n): T {\n if (customizer) {\n const result = customizer(value)\n if (result !== undefined || isRef(value)) {\n return result as typeof value\n }\n }\n\n if (Array.isArray(value)) {\n return value.map((val) => cloneDeep(val, customizer)) as typeof value\n }\n\n if (typeof value === 'object' && isPlainObject(value)) {\n const entries = Object.entries(value).map(([key, val]) => [\n key,\n cloneDeep(val, customizer),\n ])\n return Object.fromEntries(entries)\n }\n\n return value\n}\n\nexport function cloneDeepUnref<T>(obj: T): UnwrapRef<T> {\n return cloneDeep(obj, (val) => {\n if (isRef(val)) {\n return cloneDeepUnref(unref(val))\n }\n }) as UnwrapRef<typeof obj>\n}\n\nfunction isPlainObject(value: unknown): value is Object {\n if (Object.prototype.toString.call(value) !== '[object Object]') {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n return prototype === null || prototype === Object.prototype\n}\n\nexport function shouldThrowError<T extends (...args: any[]) => boolean>(\n _useErrorBoundary: boolean | T | undefined,\n params: Parameters<T>,\n): boolean {\n // Allow useErrorBoundary function to override throwing behavior on a per-error basis\n if (typeof _useErrorBoundary === 'function') {\n return _useErrorBoundary(...params)\n }\n\n return !!_useErrorBoundary\n}\n"],"names":["VUE_QUERY_CLIENT","getClientKey","key","suffix","isQueryKey","value","Array","isArray","isMutationKey","updateState","state","update","Object","keys","forEach","cloneDeep","customizer","result","undefined","isRef","map","val","isPlainObject","entries","fromEntries","cloneDeepUnref","obj","unref","prototype","toString","call","getPrototypeOf","shouldThrowError","_useErrorBoundary","params"],"mappings":"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"}
@@ -58,11 +58,21 @@ function isPlainObject(value) {
58
58
  return prototype === null || prototype === Object.prototype;
59
59
  }
60
60
 
61
+ function shouldThrowError(_useErrorBoundary, params) {
62
+ // Allow useErrorBoundary function to override throwing behavior on a per-error basis
63
+ if (typeof _useErrorBoundary === 'function') {
64
+ return _useErrorBoundary(...params);
65
+ }
66
+
67
+ return !!_useErrorBoundary;
68
+ }
69
+
61
70
  exports.VUE_QUERY_CLIENT = VUE_QUERY_CLIENT;
62
71
  exports.cloneDeep = cloneDeep;
63
72
  exports.cloneDeepUnref = cloneDeepUnref;
64
73
  exports.getClientKey = getClientKey;
65
74
  exports.isMutationKey = isMutationKey;
66
75
  exports.isQueryKey = isQueryKey;
76
+ exports.shouldThrowError = shouldThrowError;
67
77
  exports.updateState = updateState;
68
78
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../src/utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isRef, unref } from 'vue-demi'\nimport type { MutationKey, QueryKey } from '@tanstack/query-core'\nimport type { UnwrapRef } from 'vue-demi'\n\nexport const VUE_QUERY_CLIENT = 'VUE_QUERY_CLIENT'\n\nexport function getClientKey(key?: string) {\n const suffix = key ? `:${key}` : ''\n return `${VUE_QUERY_CLIENT}${suffix}`\n}\n\nexport function isQueryKey(value: unknown): value is QueryKey {\n return Array.isArray(value)\n}\n\nexport function isMutationKey(value: unknown): value is MutationKey {\n return Array.isArray(value)\n}\n\nexport function updateState(\n state: Record<string, unknown>,\n update: Record<string, any>,\n): void {\n Object.keys(state).forEach((key) => {\n state[key] = update[key]\n })\n}\n\nexport function cloneDeep<T>(\n value: T,\n customizer?: (val: unknown) => unknown | void,\n): T {\n if (customizer) {\n const result = customizer(value)\n if (result !== undefined || isRef(value)) {\n return result as typeof value\n }\n }\n\n if (Array.isArray(value)) {\n return value.map((val) => cloneDeep(val, customizer)) as typeof value\n }\n\n if (typeof value === 'object' && isPlainObject(value)) {\n const entries = Object.entries(value).map(([key, val]) => [\n key,\n cloneDeep(val, customizer),\n ])\n return Object.fromEntries(entries)\n }\n\n return value\n}\n\nexport function cloneDeepUnref<T>(obj: T): UnwrapRef<T> {\n return cloneDeep(obj, (val) => {\n if (isRef(val)) {\n return cloneDeepUnref(unref(val))\n }\n }) as UnwrapRef<typeof obj>\n}\n\nfunction isPlainObject(value: unknown): value is Object {\n if (Object.prototype.toString.call(value) !== '[object Object]') {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n return prototype === null || prototype === Object.prototype\n}\n"],"names":["VUE_QUERY_CLIENT","getClientKey","key","suffix","isQueryKey","value","Array","isArray","isMutationKey","updateState","state","update","Object","keys","forEach","cloneDeep","customizer","result","undefined","isRef","map","val","isPlainObject","entries","fromEntries","cloneDeepUnref","obj","unref","prototype","toString","call","getPrototypeOf"],"mappings":";;;;;;AAAA;AAKO,MAAMA,gBAAgB,GAAG,mBAAzB;AAEA,SAASC,YAAT,CAAsBC,GAAtB,EAAoC;AACzC,EAAA,MAAMC,MAAM,GAAGD,GAAG,GAAOA,GAAAA,GAAAA,GAAP,GAAe,EAAjC,CAAA;EACA,OAAUF,EAAAA,GAAAA,gBAAV,GAA6BG,MAA7B,CAAA;AACD,CAAA;AAEM,SAASC,UAAT,CAAoBC,KAApB,EAAuD;AAC5D,EAAA,OAAOC,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAP,CAAA;AACD,CAAA;AAEM,SAASG,aAAT,CAAuBH,KAAvB,EAA6D;AAClE,EAAA,OAAOC,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAP,CAAA;AACD,CAAA;AAEM,SAASI,WAAT,CACLC,KADK,EAELC,MAFK,EAGC;EACNC,MAAM,CAACC,IAAP,CAAYH,KAAZ,EAAmBI,OAAnB,CAA4BZ,GAAD,IAAS;AAClCQ,IAAAA,KAAK,CAACR,GAAD,CAAL,GAAaS,MAAM,CAACT,GAAD,CAAnB,CAAA;GADF,CAAA,CAAA;AAGD,CAAA;AAEM,SAASa,SAAT,CACLV,KADK,EAELW,UAFK,EAGF;AACH,EAAA,IAAIA,UAAJ,EAAgB;AACd,IAAA,MAAMC,MAAM,GAAGD,UAAU,CAACX,KAAD,CAAzB,CAAA;;IACA,IAAIY,MAAM,KAAKC,SAAX,IAAwBC,aAAK,CAACd,KAAD,CAAjC,EAA0C;AACxC,MAAA,OAAOY,MAAP,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAIX,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAJ,EAA0B;AACxB,IAAA,OAAOA,KAAK,CAACe,GAAN,CAAWC,GAAD,IAASN,SAAS,CAACM,GAAD,EAAML,UAAN,CAA5B,CAAP,CAAA;AACD,GAAA;;EAED,IAAI,OAAOX,KAAP,KAAiB,QAAjB,IAA6BiB,aAAa,CAACjB,KAAD,CAA9C,EAAuD;IACrD,MAAMkB,OAAO,GAAGX,MAAM,CAACW,OAAP,CAAelB,KAAf,CAAsBe,CAAAA,GAAtB,CAA0B,CAAC,CAAClB,GAAD,EAAMmB,GAAN,CAAD,KAAgB,CACxDnB,GADwD,EAExDa,SAAS,CAACM,GAAD,EAAML,UAAN,CAF+C,CAA1C,CAAhB,CAAA;AAIA,IAAA,OAAOJ,MAAM,CAACY,WAAP,CAAmBD,OAAnB,CAAP,CAAA;AACD,GAAA;;AAED,EAAA,OAAOlB,KAAP,CAAA;AACD,CAAA;AAEM,SAASoB,cAAT,CAA2BC,GAA3B,EAAiD;AACtD,EAAA,OAAOX,SAAS,CAACW,GAAD,EAAOL,GAAD,IAAS;AAC7B,IAAA,IAAIF,aAAK,CAACE,GAAD,CAAT,EAAgB;AACd,MAAA,OAAOI,cAAc,CAACE,aAAK,CAACN,GAAD,CAAN,CAArB,CAAA;AACD,KAAA;AACF,GAJe,CAAhB,CAAA;AAKD,CAAA;;AAED,SAASC,aAAT,CAAuBjB,KAAvB,EAAwD;EACtD,IAAIO,MAAM,CAACgB,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BzB,KAA/B,CAA0C,KAAA,iBAA9C,EAAiE;AAC/D,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;AAED,EAAA,MAAMuB,SAAS,GAAGhB,MAAM,CAACmB,cAAP,CAAsB1B,KAAtB,CAAlB,CAAA;EACA,OAAOuB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAKhB,MAAM,CAACgB,SAAlD,CAAA;AACD;;;;;;;;;;"}
1
+ {"version":3,"file":"utils.js","sources":["../../src/utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isRef, unref } from 'vue-demi'\nimport type { MutationKey, QueryKey } from '@tanstack/query-core'\nimport type { UnwrapRef } from 'vue-demi'\n\nexport const VUE_QUERY_CLIENT = 'VUE_QUERY_CLIENT'\n\nexport function getClientKey(key?: string) {\n const suffix = key ? `:${key}` : ''\n return `${VUE_QUERY_CLIENT}${suffix}`\n}\n\nexport function isQueryKey(value: unknown): value is QueryKey {\n return Array.isArray(value)\n}\n\nexport function isMutationKey(value: unknown): value is MutationKey {\n return Array.isArray(value)\n}\n\nexport function updateState(\n state: Record<string, unknown>,\n update: Record<string, any>,\n): void {\n Object.keys(state).forEach((key) => {\n state[key] = update[key]\n })\n}\n\nexport function cloneDeep<T>(\n value: T,\n customizer?: (val: unknown) => unknown | void,\n): T {\n if (customizer) {\n const result = customizer(value)\n if (result !== undefined || isRef(value)) {\n return result as typeof value\n }\n }\n\n if (Array.isArray(value)) {\n return value.map((val) => cloneDeep(val, customizer)) as typeof value\n }\n\n if (typeof value === 'object' && isPlainObject(value)) {\n const entries = Object.entries(value).map(([key, val]) => [\n key,\n cloneDeep(val, customizer),\n ])\n return Object.fromEntries(entries)\n }\n\n return value\n}\n\nexport function cloneDeepUnref<T>(obj: T): UnwrapRef<T> {\n return cloneDeep(obj, (val) => {\n if (isRef(val)) {\n return cloneDeepUnref(unref(val))\n }\n }) as UnwrapRef<typeof obj>\n}\n\nfunction isPlainObject(value: unknown): value is Object {\n if (Object.prototype.toString.call(value) !== '[object Object]') {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n return prototype === null || prototype === Object.prototype\n}\n\nexport function shouldThrowError<T extends (...args: any[]) => boolean>(\n _useErrorBoundary: boolean | T | undefined,\n params: Parameters<T>,\n): boolean {\n // Allow useErrorBoundary function to override throwing behavior on a per-error basis\n if (typeof _useErrorBoundary === 'function') {\n return _useErrorBoundary(...params)\n }\n\n return !!_useErrorBoundary\n}\n"],"names":["VUE_QUERY_CLIENT","getClientKey","key","suffix","isQueryKey","value","Array","isArray","isMutationKey","updateState","state","update","Object","keys","forEach","cloneDeep","customizer","result","undefined","isRef","map","val","isPlainObject","entries","fromEntries","cloneDeepUnref","obj","unref","prototype","toString","call","getPrototypeOf","shouldThrowError","_useErrorBoundary","params"],"mappings":"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"}
@@ -54,5 +54,14 @@ function isPlainObject(value) {
54
54
  return prototype === null || prototype === Object.prototype;
55
55
  }
56
56
 
57
- export { VUE_QUERY_CLIENT, cloneDeep, cloneDeepUnref, getClientKey, isMutationKey, isQueryKey, updateState };
57
+ function shouldThrowError(_useErrorBoundary, params) {
58
+ // Allow useErrorBoundary function to override throwing behavior on a per-error basis
59
+ if (typeof _useErrorBoundary === 'function') {
60
+ return _useErrorBoundary(...params);
61
+ }
62
+
63
+ return !!_useErrorBoundary;
64
+ }
65
+
66
+ export { VUE_QUERY_CLIENT, cloneDeep, cloneDeepUnref, getClientKey, isMutationKey, isQueryKey, shouldThrowError, updateState };
58
67
  //# sourceMappingURL=utils.mjs.map