@tanstack/vue-query 5.0.0-beta.0 → 5.0.0-beta.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/legacy/queryClient.cjs.map +1 -1
- package/build/legacy/queryClient.d.cts +1 -1
- package/build/legacy/queryClient.d.ts +1 -1
- package/build/legacy/queryClient.js.map +1 -1
- package/build/legacy/useBaseQuery.cjs +32 -19
- package/build/legacy/useBaseQuery.cjs.map +1 -1
- package/build/legacy/useBaseQuery.js +33 -20
- package/build/legacy/useBaseQuery.js.map +1 -1
- package/build/legacy/useMutation.cjs +8 -0
- package/build/legacy/useMutation.cjs.map +1 -1
- package/build/legacy/useMutation.js +9 -1
- package/build/legacy/useMutation.js.map +1 -1
- package/build/legacy/utils.cjs +8 -0
- package/build/legacy/utils.cjs.map +1 -1
- package/build/legacy/utils.d.cts +2 -1
- package/build/legacy/utils.d.ts +2 -1
- package/build/legacy/utils.js +7 -0
- package/build/legacy/utils.js.map +1 -1
- package/build/modern/queryClient.cjs.map +1 -1
- package/build/modern/queryClient.d.cts +1 -1
- package/build/modern/queryClient.d.ts +1 -1
- package/build/modern/queryClient.js.map +1 -1
- package/build/modern/useBaseQuery.cjs +32 -19
- package/build/modern/useBaseQuery.cjs.map +1 -1
- package/build/modern/useBaseQuery.js +33 -20
- package/build/modern/useBaseQuery.js.map +1 -1
- package/build/modern/useMutation.cjs +8 -0
- package/build/modern/useMutation.cjs.map +1 -1
- package/build/modern/useMutation.js +9 -1
- package/build/modern/useMutation.js.map +1 -1
- package/build/modern/utils.cjs +8 -0
- package/build/modern/utils.cjs.map +1 -1
- package/build/modern/utils.d.cts +2 -1
- package/build/modern/utils.d.ts +2 -1
- package/build/modern/utils.js +7 -0
- package/build/modern/utils.js.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/useInfiniteQuery.types.test.tsx +6 -3
- package/src/__tests__/useMutation.test.ts +20 -0
- package/src/__tests__/useQuery.test.ts +22 -0
- package/src/queryClient.ts +2 -2
- package/src/useBaseQuery.ts +41 -20
- package/src/useMutation.ts +13 -1
- package/src/utils.ts +12 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/queryClient.ts"],"sourcesContent":["import { ref } from 'vue-demi'\nimport { QueryClient as QC } from '@tanstack/query-core'\nimport { cloneDeepUnref } from './utils'\nimport { QueryCache } from './queryCache'\nimport { MutationCache } from './mutationCache'\nimport type { MaybeRefDeep } from './types'\nimport type {\n CancelOptions,\n DefaultError,\n DefaultOptions,\n FetchInfiniteQueryOptions,\n FetchQueryOptions,\n InfiniteData,\n InvalidateOptions,\n InvalidateQueryFilters,\n MutationFilters,\n MutationKey,\n MutationObserverOptions,\n QueryClientConfig,\n QueryFilters,\n QueryKey,\n QueryObserverOptions,\n QueryState,\n RefetchOptions,\n RefetchQueryFilters,\n ResetOptions,\n SetDataOptions,\n Updater,\n} from '@tanstack/query-core'\n\nexport class QueryClient extends QC {\n constructor(config: MaybeRefDeep<QueryClientConfig> = {}) {\n const unreffedConfig = cloneDeepUnref(config)\n const vueQueryConfig: QueryClientConfig = {\n defaultOptions: unreffedConfig.defaultOptions,\n queryCache: unreffedConfig.queryCache || new QueryCache(),\n mutationCache: unreffedConfig.mutationCache || new MutationCache(),\n }\n super(vueQueryConfig)\n }\n\n isRestoring = ref(false)\n\n isFetching(filters: MaybeRefDeep<QueryFilters> = {}): number {\n return super.isFetching(cloneDeepUnref(filters))\n }\n\n isMutating(filters: MaybeRefDeep<MutationFilters> = {}): number {\n return super.isMutating(cloneDeepUnref(filters))\n }\n\n getQueryData<TData = unknown>(\n queryKey: MaybeRefDeep<QueryKey>,\n ): TData | undefined {\n return super.getQueryData(cloneDeepUnref(queryKey))\n }\n\n getQueriesData<TData = unknown>(\n filters: MaybeRefDeep<QueryFilters>,\n ): [QueryKey, TData | undefined][] {\n return super.getQueriesData(cloneDeepUnref(filters))\n }\n\n setQueryData<TData>(\n queryKey: MaybeRefDeep<QueryKey>,\n updater: Updater<TData | undefined, TData | undefined>,\n options: MaybeRefDeep<SetDataOptions> = {},\n ): TData | undefined {\n return super.setQueryData(\n cloneDeepUnref(queryKey),\n updater,\n cloneDeepUnref(options),\n )\n }\n\n setQueriesData<TData>(\n filters: MaybeRefDeep<QueryFilters>,\n updater: Updater<TData | undefined, TData | undefined>,\n options: MaybeRefDeep<SetDataOptions> = {},\n ): [QueryKey, TData | undefined][] {\n return super.setQueriesData(\n cloneDeepUnref(filters),\n updater,\n cloneDeepUnref(options),\n )\n }\n\n getQueryState<TData = unknown, TError = DefaultError>(\n queryKey: MaybeRefDeep<QueryKey>,\n ): QueryState<TData, TError> | undefined {\n return super.getQueryState(cloneDeepUnref(queryKey))\n }\n\n removeQueries(filters: MaybeRefDeep<QueryFilters> = {}): void {\n return super.removeQueries(cloneDeepUnref(filters))\n }\n\n resetQueries(\n filters: MaybeRefDeep<QueryFilters> = {},\n options: MaybeRefDeep<ResetOptions> = {},\n ): Promise<void> {\n return super.resetQueries(cloneDeepUnref(filters), cloneDeepUnref(options))\n }\n\n cancelQueries(\n filters: MaybeRefDeep<QueryFilters> = {},\n options: MaybeRefDeep<CancelOptions> = {},\n ): Promise<void> {\n return super.cancelQueries(cloneDeepUnref(filters), cloneDeepUnref(options))\n }\n\n invalidateQueries(\n filters: MaybeRefDeep<InvalidateQueryFilters> = {},\n options: MaybeRefDeep<InvalidateOptions> = {},\n ): Promise<void> {\n return super.invalidateQueries(\n cloneDeepUnref(filters),\n cloneDeepUnref(options),\n )\n }\n\n refetchQueries(\n filters: MaybeRefDeep<RefetchQueryFilters> = {},\n options: MaybeRefDeep<RefetchOptions> = {},\n ): Promise<void> {\n return super.refetchQueries(\n cloneDeepUnref(filters),\n cloneDeepUnref(options),\n )\n }\n\n fetchQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<TData>\n fetchQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: MaybeRefDeep<\n FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>\n >,\n ): Promise<TData> {\n return super.fetchQuery(cloneDeepUnref(options))\n }\n\n prefetchQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void>\n prefetchQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: MaybeRefDeep<\n FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>\n >,\n ): Promise<void> {\n return super.prefetchQuery(cloneDeepUnref(options))\n }\n\n fetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n >(\n options: FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): Promise<InfiniteData<TData>>\n fetchInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n >(\n options: MaybeRefDeep<\n FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >\n >,\n ): Promise<InfiniteData<TData>> {\n return super.fetchInfiniteQuery(cloneDeepUnref(options))\n }\n\n prefetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n >(\n options: FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): Promise<void>\n prefetchInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n >(\n options: MaybeRefDeep<\n FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >\n >,\n ): Promise<void> {\n return super.prefetchInfiniteQuery(cloneDeepUnref(options))\n }\n\n setDefaultOptions(options: MaybeRefDeep<DefaultOptions>): void {\n super.setDefaultOptions(cloneDeepUnref(options))\n }\n\n setQueryDefaults(\n queryKey: MaybeRefDeep<QueryKey>,\n options: MaybeRefDeep<\n Omit<QueryObserverOptions<unknown, any, any, any>, 'queryKey'>\n >,\n ): void {\n super.setQueryDefaults(cloneDeepUnref(queryKey), cloneDeepUnref(options))\n }\n\n getQueryDefaults(\n queryKey: MaybeRefDeep<QueryKey>,\n ): QueryObserverOptions<any, any, any, any, any> {\n return super.getQueryDefaults(cloneDeepUnref(queryKey))\n }\n\n setMutationDefaults(\n mutationKey: MaybeRefDeep<MutationKey>,\n options: MaybeRefDeep<MutationObserverOptions<any, any, any, any>>,\n ): void {\n super.setMutationDefaults(\n cloneDeepUnref(mutationKey),\n cloneDeepUnref(options),\n )\n }\n\n getMutationDefaults(\n mutationKey: MaybeRefDeep<MutationKey>,\n ): MutationObserverOptions<any, any, any, any> {\n return super.getMutationDefaults(cloneDeepUnref(mutationKey))\n }\n}\n"],"mappings":";AAAA,SAAS,WAAW;AACpB,SAAS,eAAe,UAAU;AAClC,SAAS,sBAAsB;AAC/B,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AA0BvB,IAAM,cAAN,cAA0B,GAAG;AAAA,EAClC,YAAY,SAA0C,CAAC,GAAG;AACxD,UAAM,iBAAiB,eAAe,MAAM;AAC5C,UAAM,iBAAoC;AAAA,MACxC,gBAAgB,eAAe;AAAA,MAC/B,YAAY,eAAe,cAAc,IAAI,WAAW;AAAA,MACxD,eAAe,eAAe,iBAAiB,IAAI,cAAc;AAAA,IACnE;AACA,UAAM,cAAc;AAGtB,uBAAc,IAAI,KAAK;AAAA,EAFvB;AAAA,EAIA,WAAW,UAAsC,CAAC,GAAW;AAC3D,WAAO,MAAM,WAAW,eAAe,OAAO,CAAC;AAAA,EACjD;AAAA,EAEA,WAAW,UAAyC,CAAC,GAAW;AAC9D,WAAO,MAAM,WAAW,eAAe,OAAO,CAAC;AAAA,EACjD;AAAA,EAEA,aACE,UACmB;AACnB,WAAO,MAAM,aAAa,eAAe,QAAQ,CAAC;AAAA,EACpD;AAAA,EAEA,eACE,SACiC;AACjC,WAAO,MAAM,eAAe,eAAe,OAAO,CAAC;AAAA,EACrD;AAAA,EAEA,aACE,UACA,SACA,UAAwC,CAAC,GACtB;AACnB,WAAO,MAAM;AAAA,MACX,eAAe,QAAQ;AAAA,MACvB;AAAA,MACA,eAAe,OAAO;AAAA,IACxB;AAAA,EACF;AAAA,EAEA,eACE,SACA,SACA,UAAwC,CAAC,GACR;AACjC,WAAO,MAAM;AAAA,MACX,eAAe,OAAO;AAAA,MACtB;AAAA,MACA,eAAe,OAAO;AAAA,IACxB;AAAA,EACF;AAAA,EAEA,cACE,UACuC;AACvC,WAAO,MAAM,cAAc,eAAe,QAAQ,CAAC;AAAA,EACrD;AAAA,EAEA,cAAc,UAAsC,CAAC,GAAS;AAC5D,WAAO,MAAM,cAAc,eAAe,OAAO,CAAC;AAAA,EACpD;AAAA,EAEA,aACE,UAAsC,CAAC,GACvC,UAAsC,CAAC,GACxB;AACf,WAAO,MAAM,aAAa,eAAe,OAAO,GAAG,eAAe,OAAO,CAAC;AAAA,EAC5E;AAAA,EAEA,cACE,UAAsC,CAAC,GACvC,UAAuC,CAAC,GACzB;AACf,WAAO,MAAM,cAAc,eAAe,OAAO,GAAG,eAAe,OAAO,CAAC;AAAA,EAC7E;AAAA,EAEA,kBACE,UAAgD,CAAC,GACjD,UAA2C,CAAC,GAC7B;AACf,WAAO,MAAM;AAAA,MACX,eAAe,OAAO;AAAA,MACtB,eAAe,OAAO;AAAA,IACxB;AAAA,EACF;AAAA,EAEA,eACE,UAA6C,CAAC,GAC9C,UAAwC,CAAC,GAC1B;AACf,WAAO,MAAM;AAAA,MACX,eAAe,OAAO;AAAA,MACtB,eAAe,OAAO;AAAA,IACxB;AAAA,EACF;AAAA,EAUA,WAME,SAGgB;AAChB,WAAO,MAAM,WAAW,eAAe,OAAO,CAAC;AAAA,EACjD;AAAA,EAUA,cAME,SAGe;AACf,WAAO,MAAM,cAAc,eAAe,OAAO,CAAC;AAAA,EACpD;AAAA,EAiBA,mBAOE,
|
|
1
|
+
{"version":3,"sources":["../../src/queryClient.ts"],"sourcesContent":["import { ref } from 'vue-demi'\nimport { QueryClient as QC } from '@tanstack/query-core'\nimport { cloneDeepUnref } from './utils'\nimport { QueryCache } from './queryCache'\nimport { MutationCache } from './mutationCache'\nimport type { MaybeRefDeep } from './types'\nimport type {\n CancelOptions,\n DefaultError,\n DefaultOptions,\n FetchInfiniteQueryOptions,\n FetchQueryOptions,\n InfiniteData,\n InvalidateOptions,\n InvalidateQueryFilters,\n MutationFilters,\n MutationKey,\n MutationObserverOptions,\n QueryClientConfig,\n QueryFilters,\n QueryKey,\n QueryObserverOptions,\n QueryState,\n RefetchOptions,\n RefetchQueryFilters,\n ResetOptions,\n SetDataOptions,\n Updater,\n} from '@tanstack/query-core'\n\nexport class QueryClient extends QC {\n constructor(config: MaybeRefDeep<QueryClientConfig> = {}) {\n const unreffedConfig = cloneDeepUnref(config)\n const vueQueryConfig: QueryClientConfig = {\n defaultOptions: unreffedConfig.defaultOptions,\n queryCache: unreffedConfig.queryCache || new QueryCache(),\n mutationCache: unreffedConfig.mutationCache || new MutationCache(),\n }\n super(vueQueryConfig)\n }\n\n isRestoring = ref(false)\n\n isFetching(filters: MaybeRefDeep<QueryFilters> = {}): number {\n return super.isFetching(cloneDeepUnref(filters))\n }\n\n isMutating(filters: MaybeRefDeep<MutationFilters> = {}): number {\n return super.isMutating(cloneDeepUnref(filters))\n }\n\n getQueryData<TData = unknown>(\n queryKey: MaybeRefDeep<QueryKey>,\n ): TData | undefined {\n return super.getQueryData(cloneDeepUnref(queryKey))\n }\n\n getQueriesData<TData = unknown>(\n filters: MaybeRefDeep<QueryFilters>,\n ): [QueryKey, TData | undefined][] {\n return super.getQueriesData(cloneDeepUnref(filters))\n }\n\n setQueryData<TData>(\n queryKey: MaybeRefDeep<QueryKey>,\n updater: Updater<TData | undefined, TData | undefined>,\n options: MaybeRefDeep<SetDataOptions> = {},\n ): TData | undefined {\n return super.setQueryData(\n cloneDeepUnref(queryKey),\n updater,\n cloneDeepUnref(options),\n )\n }\n\n setQueriesData<TData>(\n filters: MaybeRefDeep<QueryFilters>,\n updater: Updater<TData | undefined, TData | undefined>,\n options: MaybeRefDeep<SetDataOptions> = {},\n ): [QueryKey, TData | undefined][] {\n return super.setQueriesData(\n cloneDeepUnref(filters),\n updater,\n cloneDeepUnref(options),\n )\n }\n\n getQueryState<TData = unknown, TError = DefaultError>(\n queryKey: MaybeRefDeep<QueryKey>,\n ): QueryState<TData, TError> | undefined {\n return super.getQueryState(cloneDeepUnref(queryKey))\n }\n\n removeQueries(filters: MaybeRefDeep<QueryFilters> = {}): void {\n return super.removeQueries(cloneDeepUnref(filters))\n }\n\n resetQueries(\n filters: MaybeRefDeep<QueryFilters> = {},\n options: MaybeRefDeep<ResetOptions> = {},\n ): Promise<void> {\n return super.resetQueries(cloneDeepUnref(filters), cloneDeepUnref(options))\n }\n\n cancelQueries(\n filters: MaybeRefDeep<QueryFilters> = {},\n options: MaybeRefDeep<CancelOptions> = {},\n ): Promise<void> {\n return super.cancelQueries(cloneDeepUnref(filters), cloneDeepUnref(options))\n }\n\n invalidateQueries(\n filters: MaybeRefDeep<InvalidateQueryFilters> = {},\n options: MaybeRefDeep<InvalidateOptions> = {},\n ): Promise<void> {\n return super.invalidateQueries(\n cloneDeepUnref(filters),\n cloneDeepUnref(options),\n )\n }\n\n refetchQueries(\n filters: MaybeRefDeep<RefetchQueryFilters> = {},\n options: MaybeRefDeep<RefetchOptions> = {},\n ): Promise<void> {\n return super.refetchQueries(\n cloneDeepUnref(filters),\n cloneDeepUnref(options),\n )\n }\n\n fetchQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<TData>\n fetchQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: MaybeRefDeep<\n FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>\n >,\n ): Promise<TData> {\n return super.fetchQuery(cloneDeepUnref(options))\n }\n\n prefetchQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void>\n prefetchQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: MaybeRefDeep<\n FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>\n >,\n ): Promise<void> {\n return super.prefetchQuery(cloneDeepUnref(options))\n }\n\n fetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n >(\n options: FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): Promise<InfiniteData<TData, TPageParam>>\n fetchInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n >(\n options: MaybeRefDeep<\n FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >\n >,\n ): Promise<InfiniteData<TData, TPageParam>> {\n return super.fetchInfiniteQuery(cloneDeepUnref(options))\n }\n\n prefetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n >(\n options: FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): Promise<void>\n prefetchInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n >(\n options: MaybeRefDeep<\n FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >\n >,\n ): Promise<void> {\n return super.prefetchInfiniteQuery(cloneDeepUnref(options))\n }\n\n setDefaultOptions(options: MaybeRefDeep<DefaultOptions>): void {\n super.setDefaultOptions(cloneDeepUnref(options))\n }\n\n setQueryDefaults(\n queryKey: MaybeRefDeep<QueryKey>,\n options: MaybeRefDeep<\n Omit<QueryObserverOptions<unknown, any, any, any>, 'queryKey'>\n >,\n ): void {\n super.setQueryDefaults(cloneDeepUnref(queryKey), cloneDeepUnref(options))\n }\n\n getQueryDefaults(\n queryKey: MaybeRefDeep<QueryKey>,\n ): QueryObserverOptions<any, any, any, any, any> {\n return super.getQueryDefaults(cloneDeepUnref(queryKey))\n }\n\n setMutationDefaults(\n mutationKey: MaybeRefDeep<MutationKey>,\n options: MaybeRefDeep<MutationObserverOptions<any, any, any, any>>,\n ): void {\n super.setMutationDefaults(\n cloneDeepUnref(mutationKey),\n cloneDeepUnref(options),\n )\n }\n\n getMutationDefaults(\n mutationKey: MaybeRefDeep<MutationKey>,\n ): MutationObserverOptions<any, any, any, any> {\n return super.getMutationDefaults(cloneDeepUnref(mutationKey))\n }\n}\n"],"mappings":";AAAA,SAAS,WAAW;AACpB,SAAS,eAAe,UAAU;AAClC,SAAS,sBAAsB;AAC/B,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AA0BvB,IAAM,cAAN,cAA0B,GAAG;AAAA,EAClC,YAAY,SAA0C,CAAC,GAAG;AACxD,UAAM,iBAAiB,eAAe,MAAM;AAC5C,UAAM,iBAAoC;AAAA,MACxC,gBAAgB,eAAe;AAAA,MAC/B,YAAY,eAAe,cAAc,IAAI,WAAW;AAAA,MACxD,eAAe,eAAe,iBAAiB,IAAI,cAAc;AAAA,IACnE;AACA,UAAM,cAAc;AAGtB,uBAAc,IAAI,KAAK;AAAA,EAFvB;AAAA,EAIA,WAAW,UAAsC,CAAC,GAAW;AAC3D,WAAO,MAAM,WAAW,eAAe,OAAO,CAAC;AAAA,EACjD;AAAA,EAEA,WAAW,UAAyC,CAAC,GAAW;AAC9D,WAAO,MAAM,WAAW,eAAe,OAAO,CAAC;AAAA,EACjD;AAAA,EAEA,aACE,UACmB;AACnB,WAAO,MAAM,aAAa,eAAe,QAAQ,CAAC;AAAA,EACpD;AAAA,EAEA,eACE,SACiC;AACjC,WAAO,MAAM,eAAe,eAAe,OAAO,CAAC;AAAA,EACrD;AAAA,EAEA,aACE,UACA,SACA,UAAwC,CAAC,GACtB;AACnB,WAAO,MAAM;AAAA,MACX,eAAe,QAAQ;AAAA,MACvB;AAAA,MACA,eAAe,OAAO;AAAA,IACxB;AAAA,EACF;AAAA,EAEA,eACE,SACA,SACA,UAAwC,CAAC,GACR;AACjC,WAAO,MAAM;AAAA,MACX,eAAe,OAAO;AAAA,MACtB;AAAA,MACA,eAAe,OAAO;AAAA,IACxB;AAAA,EACF;AAAA,EAEA,cACE,UACuC;AACvC,WAAO,MAAM,cAAc,eAAe,QAAQ,CAAC;AAAA,EACrD;AAAA,EAEA,cAAc,UAAsC,CAAC,GAAS;AAC5D,WAAO,MAAM,cAAc,eAAe,OAAO,CAAC;AAAA,EACpD;AAAA,EAEA,aACE,UAAsC,CAAC,GACvC,UAAsC,CAAC,GACxB;AACf,WAAO,MAAM,aAAa,eAAe,OAAO,GAAG,eAAe,OAAO,CAAC;AAAA,EAC5E;AAAA,EAEA,cACE,UAAsC,CAAC,GACvC,UAAuC,CAAC,GACzB;AACf,WAAO,MAAM,cAAc,eAAe,OAAO,GAAG,eAAe,OAAO,CAAC;AAAA,EAC7E;AAAA,EAEA,kBACE,UAAgD,CAAC,GACjD,UAA2C,CAAC,GAC7B;AACf,WAAO,MAAM;AAAA,MACX,eAAe,OAAO;AAAA,MACtB,eAAe,OAAO;AAAA,IACxB;AAAA,EACF;AAAA,EAEA,eACE,UAA6C,CAAC,GAC9C,UAAwC,CAAC,GAC1B;AACf,WAAO,MAAM;AAAA,MACX,eAAe,OAAO;AAAA,MACtB,eAAe,OAAO;AAAA,IACxB;AAAA,EACF;AAAA,EAUA,WAME,SAGgB;AAChB,WAAO,MAAM,WAAW,eAAe,OAAO,CAAC;AAAA,EACjD;AAAA,EAUA,cAME,SAGe;AACf,WAAO,MAAM,cAAc,eAAe,OAAO,CAAC;AAAA,EACpD;AAAA,EAiBA,mBAOE,SAS0C;AAC1C,WAAO,MAAM,mBAAmB,eAAe,OAAO,CAAC;AAAA,EACzD;AAAA,EAiBA,sBAOE,SASe;AACf,WAAO,MAAM,sBAAsB,eAAe,OAAO,CAAC;AAAA,EAC5D;AAAA,EAEA,kBAAkB,SAA6C;AAC7D,UAAM,kBAAkB,eAAe,OAAO,CAAC;AAAA,EACjD;AAAA,EAEA,iBACE,UACA,SAGM;AACN,UAAM,iBAAiB,eAAe,QAAQ,GAAG,eAAe,OAAO,CAAC;AAAA,EAC1E;AAAA,EAEA,iBACE,UAC+C;AAC/C,WAAO,MAAM,iBAAiB,eAAe,QAAQ,CAAC;AAAA,EACxD;AAAA,EAEA,oBACE,aACA,SACM;AACN,UAAM;AAAA,MACJ,eAAe,WAAW;AAAA,MAC1B,eAAe,OAAO;AAAA,IACxB;AAAA,EACF;AAAA,EAEA,oBACE,aAC6C;AAC7C,WAAO,MAAM,oBAAoB,eAAe,WAAW,CAAC;AAAA,EAC9D;AACF;","names":[]}
|
|
@@ -61,27 +61,40 @@ function useBaseQuery(Observer, options, queryClient) {
|
|
|
61
61
|
unsubscribe();
|
|
62
62
|
});
|
|
63
63
|
const suspense = () => {
|
|
64
|
-
return new Promise(
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
64
|
+
return new Promise(
|
|
65
|
+
(resolve, reject) => {
|
|
66
|
+
let stopWatch = () => {
|
|
67
|
+
};
|
|
68
|
+
const run = () => {
|
|
69
|
+
if (defaultedOptions.value.enabled !== false) {
|
|
70
|
+
const optimisticResult = observer.getOptimisticResult(
|
|
71
|
+
defaultedOptions.value
|
|
72
|
+
);
|
|
73
|
+
if (optimisticResult.isStale) {
|
|
74
|
+
stopWatch();
|
|
75
|
+
observer.fetchOptimistic(defaultedOptions.value).then(resolve, reject);
|
|
76
|
+
} else {
|
|
77
|
+
stopWatch();
|
|
78
|
+
resolve(optimisticResult);
|
|
79
|
+
}
|
|
78
80
|
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
81
|
+
};
|
|
82
|
+
run();
|
|
83
|
+
stopWatch = (0, import_vue_demi.watch)(defaultedOptions, run, { deep: true });
|
|
84
|
+
}
|
|
85
|
+
);
|
|
84
86
|
};
|
|
87
|
+
(0, import_vue_demi.watch)(
|
|
88
|
+
() => state.error,
|
|
89
|
+
(error) => {
|
|
90
|
+
if (state.isError && !state.isFetching && (0, import_utils.shouldThrowError)(defaultedOptions.value.throwOnError, [
|
|
91
|
+
error,
|
|
92
|
+
observer.getCurrentQuery()
|
|
93
|
+
])) {
|
|
94
|
+
throw error;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
);
|
|
85
98
|
return {
|
|
86
99
|
...(0, import_vue_demi.toRefs)((0, import_vue_demi.readonly)(state)),
|
|
87
100
|
suspense
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n watch,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, updateState } from './utils'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n DefaultedQueryObserverOptions,\n QueryKey,\n QueryObserver,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>((resolve) => {\n
|
|
1
|
+
{"version":3,"sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n watch,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, shouldThrowError, updateState } from './utils'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n DefaultedQueryObserverOptions,\n QueryKey,\n QueryObserver,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\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.throwOnError, [\n error as TError,\n observer.getCurrentQuery(),\n ])\n ) {\n throw error\n }\n },\n )\n\n return {\n ...(toRefs(readonly(state)) as ToRefs<\n Readonly<QueryObserverResult<TData, TError>>\n >),\n suspense,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAOO;AACP,4BAA+B;AAC/B,mBAA8D;AAsCvD,SAAS,aAQd,UACA,SAQA,aACuC;AACvC,QAAM,SAAS,mBAAe,sCAAe;AAE7C,QAAM,uBAAmB,0BAAS,MAAM;AACtC,UAAM,YAMF,OAAO,wBAAoB,6BAAe,OAAc,CAAC;AAE7D,cAAU,qBAAqB,OAAO,YAAY,QAC9C,gBACA;AAEJ,WAAO;AAAA,EACT,CAAC;AAED,QAAM,WAAW,IAAI,SAAS,QAAQ,iBAAiB,KAAK;AAC5D,QAAM,YAAQ,0BAAS,SAAS,iBAAiB,CAAC;AAElD,MAAI,cAAc,MAAM;AAAA,EAExB;AAEA;AAAA,IACE,OAAO;AAAA,IACP,CAAC,gBAAgB;AAEf,UAAI,CAAC,aAAa;AAChB,oBAAY;AACZ,sBAAc,SAAS,UAAU,CAAC,WAAW;AAC3C,wCAAY,OAAO,MAAM;AAAA,QAC3B,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,EAAE,WAAW,KAAK;AAAA,EACpB;AAEA;AAAA,IACE;AAAA,IACA,MAAM;AACJ,eAAS,WAAW,iBAAiB,KAAK;AAC1C,oCAAY,OAAO,SAAS,iBAAiB,CAAC;AAAA,IAChD;AAAA,IACA,EAAE,MAAM,KAAK;AAAA,EACf;AAEA,sCAAe,MAAM;AACnB,gBAAY;AAAA,EACd,CAAC;AAED,QAAM,WAAW,MAAM;AACrB,WAAO,IAAI;AAAA,MACT,CAAC,SAAS,WAAW;AACnB,YAAI,YAAY,MAAM;AAAA,QAEtB;AACA,cAAM,MAAM,MAAM;AAChB,cAAI,iBAAiB,MAAM,YAAY,OAAO;AAC5C,kBAAM,mBAAmB,SAAS;AAAA,cAChC,iBAAiB;AAAA,YACnB;AACA,gBAAI,iBAAiB,SAAS;AAC5B,wBAAU;AACV,uBACG,gBAAgB,iBAAiB,KAAK,EACtC,KAAK,SAAS,MAAM;AAAA,YACzB,OAAO;AACL,wBAAU;AACV,sBAAQ,gBAAgB;AAAA,YAC1B;AAAA,UACF;AAAA,QACF;AAEA,YAAI;AAEJ,wBAAY,uBAAM,kBAAkB,KAAK,EAAE,MAAM,KAAK,CAAC;AAAA,MACzD;AAAA,IACF;AAAA,EACF;AAGA;AAAA,IACE,MAAM,MAAM;AAAA,IACZ,CAAC,UAAU;AACT,UACE,MAAM,WACN,CAAC,MAAM,kBACP,+BAAiB,iBAAiB,MAAM,cAAc;AAAA,QACpD;AAAA,QACA,SAAS,gBAAgB;AAAA,MAC3B,CAAC,GACD;AACA,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL,OAAI,4BAAO,0BAAS,KAAK,CAAC;AAAA,IAG1B;AAAA,EACF;AACF;","names":[]}
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
watch
|
|
9
9
|
} from "vue-demi";
|
|
10
10
|
import { useQueryClient } from "./useQueryClient.js";
|
|
11
|
-
import { cloneDeepUnref, updateState } from "./utils.js";
|
|
11
|
+
import { cloneDeepUnref, shouldThrowError, updateState } from "./utils.js";
|
|
12
12
|
function useBaseQuery(Observer, options, queryClient) {
|
|
13
13
|
const client = queryClient || useQueryClient();
|
|
14
14
|
const defaultedOptions = computed(() => {
|
|
@@ -44,27 +44,40 @@ function useBaseQuery(Observer, options, queryClient) {
|
|
|
44
44
|
unsubscribe();
|
|
45
45
|
});
|
|
46
46
|
const suspense = () => {
|
|
47
|
-
return new Promise(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
47
|
+
return new Promise(
|
|
48
|
+
(resolve, reject) => {
|
|
49
|
+
let stopWatch = () => {
|
|
50
|
+
};
|
|
51
|
+
const run = () => {
|
|
52
|
+
if (defaultedOptions.value.enabled !== false) {
|
|
53
|
+
const optimisticResult = observer.getOptimisticResult(
|
|
54
|
+
defaultedOptions.value
|
|
55
|
+
);
|
|
56
|
+
if (optimisticResult.isStale) {
|
|
57
|
+
stopWatch();
|
|
58
|
+
observer.fetchOptimistic(defaultedOptions.value).then(resolve, reject);
|
|
59
|
+
} else {
|
|
60
|
+
stopWatch();
|
|
61
|
+
resolve(optimisticResult);
|
|
62
|
+
}
|
|
61
63
|
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
};
|
|
65
|
+
run();
|
|
66
|
+
stopWatch = watch(defaultedOptions, run, { deep: true });
|
|
67
|
+
}
|
|
68
|
+
);
|
|
67
69
|
};
|
|
70
|
+
watch(
|
|
71
|
+
() => state.error,
|
|
72
|
+
(error) => {
|
|
73
|
+
if (state.isError && !state.isFetching && shouldThrowError(defaultedOptions.value.throwOnError, [
|
|
74
|
+
error,
|
|
75
|
+
observer.getCurrentQuery()
|
|
76
|
+
])) {
|
|
77
|
+
throw error;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
);
|
|
68
81
|
return {
|
|
69
82
|
...toRefs(readonly(state)),
|
|
70
83
|
suspense
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n watch,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, updateState } from './utils'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n DefaultedQueryObserverOptions,\n QueryKey,\n QueryObserver,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>((resolve) => {\n
|
|
1
|
+
{"version":3,"sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n watch,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, shouldThrowError, updateState } from './utils'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n DefaultedQueryObserverOptions,\n QueryKey,\n QueryObserver,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\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.throwOnError, [\n error as TError,\n observer.getCurrentQuery(),\n ])\n ) {\n throw error\n }\n },\n )\n\n return {\n ...(toRefs(readonly(state)) as ToRefs<\n Readonly<QueryObserverResult<TData, TError>>\n >),\n suspense,\n }\n}\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB,kBAAkB,mBAAmB;AAsCvD,SAAS,aAQd,UACA,SAQA,aACuC;AACvC,QAAM,SAAS,eAAe,eAAe;AAE7C,QAAM,mBAAmB,SAAS,MAAM;AACtC,UAAM,YAMF,OAAO,oBAAoB,eAAe,OAAc,CAAC;AAE7D,cAAU,qBAAqB,OAAO,YAAY,QAC9C,gBACA;AAEJ,WAAO;AAAA,EACT,CAAC;AAED,QAAM,WAAW,IAAI,SAAS,QAAQ,iBAAiB,KAAK;AAC5D,QAAM,QAAQ,SAAS,SAAS,iBAAiB,CAAC;AAElD,MAAI,cAAc,MAAM;AAAA,EAExB;AAEA;AAAA,IACE,OAAO;AAAA,IACP,CAAC,gBAAgB;AAEf,UAAI,CAAC,aAAa;AAChB,oBAAY;AACZ,sBAAc,SAAS,UAAU,CAAC,WAAW;AAC3C,sBAAY,OAAO,MAAM;AAAA,QAC3B,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,EAAE,WAAW,KAAK;AAAA,EACpB;AAEA;AAAA,IACE;AAAA,IACA,MAAM;AACJ,eAAS,WAAW,iBAAiB,KAAK;AAC1C,kBAAY,OAAO,SAAS,iBAAiB,CAAC;AAAA,IAChD;AAAA,IACA,EAAE,MAAM,KAAK;AAAA,EACf;AAEA,iBAAe,MAAM;AACnB,gBAAY;AAAA,EACd,CAAC;AAED,QAAM,WAAW,MAAM;AACrB,WAAO,IAAI;AAAA,MACT,CAAC,SAAS,WAAW;AACnB,YAAI,YAAY,MAAM;AAAA,QAEtB;AACA,cAAM,MAAM,MAAM;AAChB,cAAI,iBAAiB,MAAM,YAAY,OAAO;AAC5C,kBAAM,mBAAmB,SAAS;AAAA,cAChC,iBAAiB;AAAA,YACnB;AACA,gBAAI,iBAAiB,SAAS;AAC5B,wBAAU;AACV,uBACG,gBAAgB,iBAAiB,KAAK,EACtC,KAAK,SAAS,MAAM;AAAA,YACzB,OAAO;AACL,wBAAU;AACV,sBAAQ,gBAAgB;AAAA,YAC1B;AAAA,UACF;AAAA,QACF;AAEA,YAAI;AAEJ,oBAAY,MAAM,kBAAkB,KAAK,EAAE,MAAM,KAAK,CAAC;AAAA,MACzD;AAAA,IACF;AAAA,EACF;AAGA;AAAA,IACE,MAAM,MAAM;AAAA,IACZ,CAAC,UAAU;AACT,UACE,MAAM,WACN,CAAC,MAAM,cACP,iBAAiB,iBAAiB,MAAM,cAAc;AAAA,QACpD;AAAA,QACA,SAAS,gBAAgB;AAAA,MAC3B,CAAC,GACD;AACA,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL,GAAI,OAAO,SAAS,KAAK,CAAC;AAAA,IAG1B;AAAA,EACF;AACF;","names":[]}
|
|
@@ -52,6 +52,14 @@ function useMutation(mutationOptions, queryClient) {
|
|
|
52
52
|
unsubscribe();
|
|
53
53
|
});
|
|
54
54
|
const resultRefs = (0, import_vue_demi.toRefs)((0, import_vue_demi.readonly)(state));
|
|
55
|
+
(0, import_vue_demi.watch)(
|
|
56
|
+
() => state.error,
|
|
57
|
+
(error) => {
|
|
58
|
+
if (error && (0, import_utils.shouldThrowError)(options.value.throwOnError, [error])) {
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
);
|
|
55
63
|
return {
|
|
56
64
|
...resultRefs,
|
|
57
65
|
mutate,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n watch,\n} from 'vue-demi'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { cloneDeepUnref, updateState } from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n DefaultError,\n MutateFunction,\n MutateOptions,\n MutationObserverOptions,\n MutationObserverResult,\n} from '@tanstack/query-core'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\nimport type { QueryClient } from './queryClient'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = MaybeRefDeep<MutationObserverOptions<TData, TError, TVariables, TContext>>\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n Result = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<Result>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n mutationOptions: MaybeRefDeep<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n queryClient?: QueryClient,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const client = queryClient || useQueryClient()\n const options = computed(() => {\n return client.defaultMutationOptions(cloneDeepUnref(mutationOptions))\n })\n const observer = new MutationObserver(client, options.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(\n options,\n () => {\n observer.setOptions(options.value)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const resultRefs = toRefs(readonly(state)) as unknown as ToRefs<\n Readonly<MutationResult<TData, TError, TVariables, TContext>>\n >\n\n return {\n ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAOO;AACP,wBAAiC;AACjC,
|
|
1
|
+
{"version":3,"sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n watch,\n} from 'vue-demi'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { cloneDeepUnref, shouldThrowError, updateState } from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n DefaultError,\n MutateFunction,\n MutateOptions,\n MutationObserverOptions,\n MutationObserverResult,\n} from '@tanstack/query-core'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\nimport type { QueryClient } from './queryClient'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = MaybeRefDeep<MutationObserverOptions<TData, TError, TVariables, TContext>>\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n Result = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<Result>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n mutationOptions: MaybeRefDeep<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n queryClient?: QueryClient,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const client = queryClient || useQueryClient()\n const options = computed(() => {\n return client.defaultMutationOptions(cloneDeepUnref(mutationOptions))\n })\n const observer = new MutationObserver(client, options.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(\n options,\n () => {\n observer.setOptions(options.value)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const resultRefs = toRefs(readonly(state)) as unknown as ToRefs<\n Readonly<MutationResult<TData, TError, TVariables, TContext>>\n >\n\n watch(\n () => state.error,\n (error) => {\n if (\n error &&\n shouldThrowError(options.value.throwOnError, [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"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAOO;AACP,wBAAiC;AACjC,mBAA8D;AAC9D,4BAA+B;AA6CxB,SAAS,YAMd,iBAGA,aAC4D;AAC5D,QAAM,SAAS,mBAAe,sCAAe;AAC7C,QAAM,cAAU,0BAAS,MAAM;AAC7B,WAAO,OAAO,2BAAuB,6BAAe,eAAe,CAAC;AAAA,EACtE,CAAC;AACD,QAAM,WAAW,IAAI,mCAAiB,QAAQ,QAAQ,KAAK;AAC3D,QAAM,YAAQ,0BAAS,SAAS,iBAAiB,CAAC;AAElD,QAAM,cAAc,SAAS,UAAU,CAAC,WAAW;AACjD,kCAAY,OAAO,MAAM;AAAA,EAC3B,CAAC;AAED,QAAM,SAAS,CACb,WACA,kBACG;AACH,aAAS,OAAO,WAAW,aAAa,EAAE,MAAM,MAAM;AAAA,IAEtD,CAAC;AAAA,EACH;AAEA;AAAA,IACE;AAAA,IACA,MAAM;AACJ,eAAS,WAAW,QAAQ,KAAK;AAAA,IACnC;AAAA,IACA,EAAE,MAAM,KAAK;AAAA,EACf;AAEA,sCAAe,MAAM;AACnB,gBAAY;AAAA,EACd,CAAC;AAED,QAAM,iBAAa,4BAAO,0BAAS,KAAK,CAAC;AAIzC;AAAA,IACE,MAAM,MAAM;AAAA,IACZ,CAAC,UAAU;AACT,UACE,aACA,+BAAiB,QAAQ,MAAM,cAAc,CAAC,KAAe,CAAC,GAC9D;AACA,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA,aAAa,MAAM;AAAA,IACnB,OAAO,MAAM;AAAA,EACf;AACF;","names":[]}
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
watch
|
|
9
9
|
} from "vue-demi";
|
|
10
10
|
import { MutationObserver } from "@tanstack/query-core";
|
|
11
|
-
import { cloneDeepUnref, updateState } from "./utils.js";
|
|
11
|
+
import { cloneDeepUnref, shouldThrowError, updateState } from "./utils.js";
|
|
12
12
|
import { useQueryClient } from "./useQueryClient.js";
|
|
13
13
|
function useMutation(mutationOptions, queryClient) {
|
|
14
14
|
const client = queryClient || useQueryClient();
|
|
@@ -35,6 +35,14 @@ function useMutation(mutationOptions, queryClient) {
|
|
|
35
35
|
unsubscribe();
|
|
36
36
|
});
|
|
37
37
|
const resultRefs = toRefs(readonly(state));
|
|
38
|
+
watch(
|
|
39
|
+
() => state.error,
|
|
40
|
+
(error) => {
|
|
41
|
+
if (error && shouldThrowError(options.value.throwOnError, [error])) {
|
|
42
|
+
throw error;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
);
|
|
38
46
|
return {
|
|
39
47
|
...resultRefs,
|
|
40
48
|
mutate,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n watch,\n} from 'vue-demi'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { cloneDeepUnref, updateState } from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n DefaultError,\n MutateFunction,\n MutateOptions,\n MutationObserverOptions,\n MutationObserverResult,\n} from '@tanstack/query-core'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\nimport type { QueryClient } from './queryClient'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = MaybeRefDeep<MutationObserverOptions<TData, TError, TVariables, TContext>>\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n Result = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<Result>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n mutationOptions: MaybeRefDeep<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n queryClient?: QueryClient,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const client = queryClient || useQueryClient()\n const options = computed(() => {\n return client.defaultMutationOptions(cloneDeepUnref(mutationOptions))\n })\n const observer = new MutationObserver(client, options.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(\n options,\n () => {\n observer.setOptions(options.value)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const resultRefs = toRefs(readonly(state)) as unknown as ToRefs<\n Readonly<MutationResult<TData, TError, TVariables, TContext>>\n >\n\n return {\n ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset,\n }\n}\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,wBAAwB;AACjC,SAAS,gBAAgB,mBAAmB;
|
|
1
|
+
{"version":3,"sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n watch,\n} from 'vue-demi'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { cloneDeepUnref, shouldThrowError, updateState } from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n DefaultError,\n MutateFunction,\n MutateOptions,\n MutationObserverOptions,\n MutationObserverResult,\n} from '@tanstack/query-core'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\nimport type { QueryClient } from './queryClient'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = MaybeRefDeep<MutationObserverOptions<TData, TError, TVariables, TContext>>\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n Result = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<Result>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n mutationOptions: MaybeRefDeep<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n queryClient?: QueryClient,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n const client = queryClient || useQueryClient()\n const options = computed(() => {\n return client.defaultMutationOptions(cloneDeepUnref(mutationOptions))\n })\n const observer = new MutationObserver(client, options.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(\n options,\n () => {\n observer.setOptions(options.value)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const resultRefs = toRefs(readonly(state)) as unknown as ToRefs<\n Readonly<MutationResult<TData, TError, TVariables, TContext>>\n >\n\n watch(\n () => state.error,\n (error) => {\n if (\n error &&\n shouldThrowError(options.value.throwOnError, [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"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,wBAAwB;AACjC,SAAS,gBAAgB,kBAAkB,mBAAmB;AAC9D,SAAS,sBAAsB;AA6CxB,SAAS,YAMd,iBAGA,aAC4D;AAC5D,QAAM,SAAS,eAAe,eAAe;AAC7C,QAAM,UAAU,SAAS,MAAM;AAC7B,WAAO,OAAO,uBAAuB,eAAe,eAAe,CAAC;AAAA,EACtE,CAAC;AACD,QAAM,WAAW,IAAI,iBAAiB,QAAQ,QAAQ,KAAK;AAC3D,QAAM,QAAQ,SAAS,SAAS,iBAAiB,CAAC;AAElD,QAAM,cAAc,SAAS,UAAU,CAAC,WAAW;AACjD,gBAAY,OAAO,MAAM;AAAA,EAC3B,CAAC;AAED,QAAM,SAAS,CACb,WACA,kBACG;AACH,aAAS,OAAO,WAAW,aAAa,EAAE,MAAM,MAAM;AAAA,IAEtD,CAAC;AAAA,EACH;AAEA;AAAA,IACE;AAAA,IACA,MAAM;AACJ,eAAS,WAAW,QAAQ,KAAK;AAAA,IACnC;AAAA,IACA,EAAE,MAAM,KAAK;AAAA,EACf;AAEA,iBAAe,MAAM;AACnB,gBAAY;AAAA,EACd,CAAC;AAED,QAAM,aAAa,OAAO,SAAS,KAAK,CAAC;AAIzC;AAAA,IACE,MAAM,MAAM;AAAA,IACZ,CAAC,UAAU;AACT,UACE,SACA,iBAAiB,QAAQ,MAAM,cAAc,CAAC,KAAe,CAAC,GAC9D;AACA,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA,aAAa,MAAM;AAAA,IACnB,OAAO,MAAM;AAAA,EACf;AACF;","names":[]}
|
package/build/modern/utils.cjs
CHANGED
|
@@ -24,6 +24,7 @@ __export(utils_exports, {
|
|
|
24
24
|
cloneDeep: () => cloneDeep,
|
|
25
25
|
cloneDeepUnref: () => cloneDeepUnref,
|
|
26
26
|
getClientKey: () => getClientKey,
|
|
27
|
+
shouldThrowError: () => shouldThrowError,
|
|
27
28
|
updateState: () => updateState
|
|
28
29
|
});
|
|
29
30
|
module.exports = __toCommonJS(utils_exports);
|
|
@@ -75,12 +76,19 @@ function isPlainObject(value) {
|
|
|
75
76
|
const prototype = Object.getPrototypeOf(value);
|
|
76
77
|
return prototype === null || prototype === Object.prototype;
|
|
77
78
|
}
|
|
79
|
+
function shouldThrowError(throwOnError, params) {
|
|
80
|
+
if (typeof throwOnError === "function") {
|
|
81
|
+
return throwOnError(...params);
|
|
82
|
+
}
|
|
83
|
+
return !!throwOnError;
|
|
84
|
+
}
|
|
78
85
|
// Annotate the CommonJS export names for ESM import in node:
|
|
79
86
|
0 && (module.exports = {
|
|
80
87
|
VUE_QUERY_CLIENT,
|
|
81
88
|
cloneDeep,
|
|
82
89
|
cloneDeepUnref,
|
|
83
90
|
getClientKey,
|
|
91
|
+
shouldThrowError,
|
|
84
92
|
updateState
|
|
85
93
|
});
|
|
86
94
|
//# sourceMappingURL=utils.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils.ts"],"sourcesContent":["import { isRef, unref } from 'vue-demi'\nimport type { MaybeRefDeep } from './types'\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 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: MaybeRefDeep<T>,\n customizer?: (val: MaybeRefDeep<T>) => T | undefined,\n): T {\n if (customizer) {\n const result = customizer(value)\n // If it's a ref of undefined, return undefined\n if (result === undefined && isRef(value)) {\n return result as T\n }\n if (result !== undefined) {\n return result\n }\n }\n\n if (Array.isArray(value)) {\n return value.map((val) => cloneDeep(val, customizer)) as unknown as T\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 as T\n}\n\nexport function cloneDeepUnref<T>(obj: MaybeRefDeep<T>): T {\n return cloneDeep(obj, (val) => {\n if (isRef(val)) {\n return cloneDeepUnref(unref(val))\n }\n\n return undefined\n })\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"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA6B;AAGtB,IAAM,mBAAmB;AAEzB,SAAS,aAAa,KAAc;AACzC,QAAM,SAAS,MAAM,IAAI,GAAG,KAAK;AACjC,SAAO,GAAG,gBAAgB,GAAG,MAAM;AACrC;AAEO,SAAS,YACd,OACA,QACM;AACN,SAAO,KAAK,KAAK,EAAE,QAAQ,CAAC,QAAQ;AAClC,UAAM,GAAG,IAAI,OAAO,GAAG;AAAA,EACzB,CAAC;AACH;AAEO,SAAS,UACd,OACA,YACG;AACH,MAAI,YAAY;AACd,UAAM,SAAS,WAAW,KAAK;AAE/B,QAAI,WAAW,cAAa,uBAAM,KAAK,GAAG;AACxC,aAAO;AAAA,IACT;AACA,QAAI,WAAW,QAAW;AACxB,aAAO;AAAA,IACT;AAAA,EACF;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,CAAC,QAAQ,UAAU,KAAK,UAAU,CAAC;AAAA,EACtD;AAEA,MAAI,OAAO,UAAU,YAAY,cAAc,KAAK,GAAG;AACrD,UAAM,UAAU,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM;AAAA,MACxD;AAAA,MACA,UAAU,KAAK,UAAU;AAAA,IAC3B,CAAC;AACD,WAAO,OAAO,YAAY,OAAO;AAAA,EACnC;AAEA,SAAO;AACT;AAEO,SAAS,eAAkB,KAAyB;AACzD,SAAO,UAAU,KAAK,CAAC,QAAQ;AAC7B,YAAI,uBAAM,GAAG,GAAG;AACd,aAAO,mBAAe,uBAAM,GAAG,CAAC;AAAA,IAClC;AAEA,WAAO;AAAA,EACT,CAAC;AACH;AAEA,SAAS,cAAc,OAAiC;AACtD,MAAI,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,mBAAmB;AAC/D,WAAO;AAAA,EACT;AAEA,QAAM,YAAY,OAAO,eAAe,KAAK;AAC7C,SAAO,cAAc,QAAQ,cAAc,OAAO;AACpD;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/utils.ts"],"sourcesContent":["import { isRef, unref } from 'vue-demi'\nimport type { MaybeRefDeep } from './types'\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 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: MaybeRefDeep<T>,\n customizer?: (val: MaybeRefDeep<T>) => T | undefined,\n): T {\n if (customizer) {\n const result = customizer(value)\n // If it's a ref of undefined, return undefined\n if (result === undefined && isRef(value)) {\n return result as T\n }\n if (result !== undefined) {\n return result\n }\n }\n\n if (Array.isArray(value)) {\n return value.map((val) => cloneDeep(val, customizer)) as unknown as T\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 as T\n}\n\nexport function cloneDeepUnref<T>(obj: MaybeRefDeep<T>): T {\n return cloneDeep(obj, (val) => {\n if (isRef(val)) {\n return cloneDeepUnref(unref(val))\n }\n\n return undefined\n })\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 throwOnError: boolean | T | undefined,\n params: Parameters<T>,\n): boolean {\n // Allow throwOnError function to override throwing behavior on a per-error basis\n if (typeof throwOnError === 'function') {\n return throwOnError(...params)\n }\n\n return !!throwOnError\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA6B;AAGtB,IAAM,mBAAmB;AAEzB,SAAS,aAAa,KAAc;AACzC,QAAM,SAAS,MAAM,IAAI,GAAG,KAAK;AACjC,SAAO,GAAG,gBAAgB,GAAG,MAAM;AACrC;AAEO,SAAS,YACd,OACA,QACM;AACN,SAAO,KAAK,KAAK,EAAE,QAAQ,CAAC,QAAQ;AAClC,UAAM,GAAG,IAAI,OAAO,GAAG;AAAA,EACzB,CAAC;AACH;AAEO,SAAS,UACd,OACA,YACG;AACH,MAAI,YAAY;AACd,UAAM,SAAS,WAAW,KAAK;AAE/B,QAAI,WAAW,cAAa,uBAAM,KAAK,GAAG;AACxC,aAAO;AAAA,IACT;AACA,QAAI,WAAW,QAAW;AACxB,aAAO;AAAA,IACT;AAAA,EACF;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,CAAC,QAAQ,UAAU,KAAK,UAAU,CAAC;AAAA,EACtD;AAEA,MAAI,OAAO,UAAU,YAAY,cAAc,KAAK,GAAG;AACrD,UAAM,UAAU,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM;AAAA,MACxD;AAAA,MACA,UAAU,KAAK,UAAU;AAAA,IAC3B,CAAC;AACD,WAAO,OAAO,YAAY,OAAO;AAAA,EACnC;AAEA,SAAO;AACT;AAEO,SAAS,eAAkB,KAAyB;AACzD,SAAO,UAAU,KAAK,CAAC,QAAQ;AAC7B,YAAI,uBAAM,GAAG,GAAG;AACd,aAAO,mBAAe,uBAAM,GAAG,CAAC;AAAA,IAClC;AAEA,WAAO;AAAA,EACT,CAAC;AACH;AAEA,SAAS,cAAc,OAAiC;AACtD,MAAI,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,mBAAmB;AAC/D,WAAO;AAAA,EACT;AAEA,QAAM,YAAY,OAAO,eAAe,KAAK;AAC7C,SAAO,cAAc,QAAQ,cAAc,OAAO;AACpD;AAEO,SAAS,iBACd,cACA,QACS;AAET,MAAI,OAAO,iBAAiB,YAAY;AACtC,WAAO,aAAa,GAAG,MAAM;AAAA,EAC/B;AAEA,SAAO,CAAC,CAAC;AACX;","names":[]}
|
package/build/modern/utils.d.cts
CHANGED
|
@@ -6,5 +6,6 @@ declare function getClientKey(key?: string): string;
|
|
|
6
6
|
declare function updateState(state: Record<string, unknown>, update: Record<string, any>): void;
|
|
7
7
|
declare function cloneDeep<T>(value: MaybeRefDeep<T>, customizer?: (val: MaybeRefDeep<T>) => T | undefined): T;
|
|
8
8
|
declare function cloneDeepUnref<T>(obj: MaybeRefDeep<T>): T;
|
|
9
|
+
declare function shouldThrowError<T extends (...args: any[]) => boolean>(throwOnError: boolean | T | undefined, params: Parameters<T>): boolean;
|
|
9
10
|
|
|
10
|
-
export { VUE_QUERY_CLIENT, cloneDeep, cloneDeepUnref, getClientKey, updateState };
|
|
11
|
+
export { VUE_QUERY_CLIENT, cloneDeep, cloneDeepUnref, getClientKey, shouldThrowError, updateState };
|
package/build/modern/utils.d.ts
CHANGED
|
@@ -6,5 +6,6 @@ declare function getClientKey(key?: string): string;
|
|
|
6
6
|
declare function updateState(state: Record<string, unknown>, update: Record<string, any>): void;
|
|
7
7
|
declare function cloneDeep<T>(value: MaybeRefDeep<T>, customizer?: (val: MaybeRefDeep<T>) => T | undefined): T;
|
|
8
8
|
declare function cloneDeepUnref<T>(obj: MaybeRefDeep<T>): T;
|
|
9
|
+
declare function shouldThrowError<T extends (...args: any[]) => boolean>(throwOnError: boolean | T | undefined, params: Parameters<T>): boolean;
|
|
9
10
|
|
|
10
|
-
export { VUE_QUERY_CLIENT, cloneDeep, cloneDeepUnref, getClientKey, updateState };
|
|
11
|
+
export { VUE_QUERY_CLIENT, cloneDeep, cloneDeepUnref, getClientKey, shouldThrowError, updateState };
|
package/build/modern/utils.js
CHANGED
|
@@ -47,11 +47,18 @@ function isPlainObject(value) {
|
|
|
47
47
|
const prototype = Object.getPrototypeOf(value);
|
|
48
48
|
return prototype === null || prototype === Object.prototype;
|
|
49
49
|
}
|
|
50
|
+
function shouldThrowError(throwOnError, params) {
|
|
51
|
+
if (typeof throwOnError === "function") {
|
|
52
|
+
return throwOnError(...params);
|
|
53
|
+
}
|
|
54
|
+
return !!throwOnError;
|
|
55
|
+
}
|
|
50
56
|
export {
|
|
51
57
|
VUE_QUERY_CLIENT,
|
|
52
58
|
cloneDeep,
|
|
53
59
|
cloneDeepUnref,
|
|
54
60
|
getClientKey,
|
|
61
|
+
shouldThrowError,
|
|
55
62
|
updateState
|
|
56
63
|
};
|
|
57
64
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils.ts"],"sourcesContent":["import { isRef, unref } from 'vue-demi'\nimport type { MaybeRefDeep } from './types'\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 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: MaybeRefDeep<T>,\n customizer?: (val: MaybeRefDeep<T>) => T | undefined,\n): T {\n if (customizer) {\n const result = customizer(value)\n // If it's a ref of undefined, return undefined\n if (result === undefined && isRef(value)) {\n return result as T\n }\n if (result !== undefined) {\n return result\n }\n }\n\n if (Array.isArray(value)) {\n return value.map((val) => cloneDeep(val, customizer)) as unknown as T\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 as T\n}\n\nexport function cloneDeepUnref<T>(obj: MaybeRefDeep<T>): T {\n return cloneDeep(obj, (val) => {\n if (isRef(val)) {\n return cloneDeepUnref(unref(val))\n }\n\n return undefined\n })\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"],"mappings":";AAAA,SAAS,OAAO,aAAa;AAGtB,IAAM,mBAAmB;AAEzB,SAAS,aAAa,KAAc;AACzC,QAAM,SAAS,MAAM,IAAI,GAAG,KAAK;AACjC,SAAO,GAAG,gBAAgB,GAAG,MAAM;AACrC;AAEO,SAAS,YACd,OACA,QACM;AACN,SAAO,KAAK,KAAK,EAAE,QAAQ,CAAC,QAAQ;AAClC,UAAM,GAAG,IAAI,OAAO,GAAG;AAAA,EACzB,CAAC;AACH;AAEO,SAAS,UACd,OACA,YACG;AACH,MAAI,YAAY;AACd,UAAM,SAAS,WAAW,KAAK;AAE/B,QAAI,WAAW,UAAa,MAAM,KAAK,GAAG;AACxC,aAAO;AAAA,IACT;AACA,QAAI,WAAW,QAAW;AACxB,aAAO;AAAA,IACT;AAAA,EACF;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,CAAC,QAAQ,UAAU,KAAK,UAAU,CAAC;AAAA,EACtD;AAEA,MAAI,OAAO,UAAU,YAAY,cAAc,KAAK,GAAG;AACrD,UAAM,UAAU,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM;AAAA,MACxD;AAAA,MACA,UAAU,KAAK,UAAU;AAAA,IAC3B,CAAC;AACD,WAAO,OAAO,YAAY,OAAO;AAAA,EACnC;AAEA,SAAO;AACT;AAEO,SAAS,eAAkB,KAAyB;AACzD,SAAO,UAAU,KAAK,CAAC,QAAQ;AAC7B,QAAI,MAAM,GAAG,GAAG;AACd,aAAO,eAAe,MAAM,GAAG,CAAC;AAAA,IAClC;AAEA,WAAO;AAAA,EACT,CAAC;AACH;AAEA,SAAS,cAAc,OAAiC;AACtD,MAAI,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,mBAAmB;AAC/D,WAAO;AAAA,EACT;AAEA,QAAM,YAAY,OAAO,eAAe,KAAK;AAC7C,SAAO,cAAc,QAAQ,cAAc,OAAO;AACpD;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/utils.ts"],"sourcesContent":["import { isRef, unref } from 'vue-demi'\nimport type { MaybeRefDeep } from './types'\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 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: MaybeRefDeep<T>,\n customizer?: (val: MaybeRefDeep<T>) => T | undefined,\n): T {\n if (customizer) {\n const result = customizer(value)\n // If it's a ref of undefined, return undefined\n if (result === undefined && isRef(value)) {\n return result as T\n }\n if (result !== undefined) {\n return result\n }\n }\n\n if (Array.isArray(value)) {\n return value.map((val) => cloneDeep(val, customizer)) as unknown as T\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 as T\n}\n\nexport function cloneDeepUnref<T>(obj: MaybeRefDeep<T>): T {\n return cloneDeep(obj, (val) => {\n if (isRef(val)) {\n return cloneDeepUnref(unref(val))\n }\n\n return undefined\n })\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 throwOnError: boolean | T | undefined,\n params: Parameters<T>,\n): boolean {\n // Allow throwOnError function to override throwing behavior on a per-error basis\n if (typeof throwOnError === 'function') {\n return throwOnError(...params)\n }\n\n return !!throwOnError\n}\n"],"mappings":";AAAA,SAAS,OAAO,aAAa;AAGtB,IAAM,mBAAmB;AAEzB,SAAS,aAAa,KAAc;AACzC,QAAM,SAAS,MAAM,IAAI,GAAG,KAAK;AACjC,SAAO,GAAG,gBAAgB,GAAG,MAAM;AACrC;AAEO,SAAS,YACd,OACA,QACM;AACN,SAAO,KAAK,KAAK,EAAE,QAAQ,CAAC,QAAQ;AAClC,UAAM,GAAG,IAAI,OAAO,GAAG;AAAA,EACzB,CAAC;AACH;AAEO,SAAS,UACd,OACA,YACG;AACH,MAAI,YAAY;AACd,UAAM,SAAS,WAAW,KAAK;AAE/B,QAAI,WAAW,UAAa,MAAM,KAAK,GAAG;AACxC,aAAO;AAAA,IACT;AACA,QAAI,WAAW,QAAW;AACxB,aAAO;AAAA,IACT;AAAA,EACF;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,CAAC,QAAQ,UAAU,KAAK,UAAU,CAAC;AAAA,EACtD;AAEA,MAAI,OAAO,UAAU,YAAY,cAAc,KAAK,GAAG;AACrD,UAAM,UAAU,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM;AAAA,MACxD;AAAA,MACA,UAAU,KAAK,UAAU;AAAA,IAC3B,CAAC;AACD,WAAO,OAAO,YAAY,OAAO;AAAA,EACnC;AAEA,SAAO;AACT;AAEO,SAAS,eAAkB,KAAyB;AACzD,SAAO,UAAU,KAAK,CAAC,QAAQ;AAC7B,QAAI,MAAM,GAAG,GAAG;AACd,aAAO,eAAe,MAAM,GAAG,CAAC;AAAA,IAClC;AAEA,WAAO;AAAA,EACT,CAAC;AACH;AAEA,SAAS,cAAc,OAAiC;AACtD,MAAI,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,mBAAmB;AAC/D,WAAO;AAAA,EACT;AAEA,QAAM,YAAY,OAAO,eAAe,KAAK;AAC7C,SAAO,cAAc,QAAQ,cAAc,OAAO;AACpD;AAEO,SAAS,iBACd,cACA,QACS;AAET,MAAI,OAAO,iBAAiB,YAAY;AACtC,WAAO,aAAa,GAAG,MAAM;AAAA,EAC/B;AAEA,SAAO,CAAC,CAAC;AACX;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/vue-query",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.12",
|
|
4
4
|
"description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue",
|
|
5
5
|
"author": "Damian Osipiuk",
|
|
6
6
|
"license": "MIT",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@tanstack/match-sorter-utils": "^8.8.4",
|
|
50
50
|
"@vue/devtools-api": "^6.5.0",
|
|
51
51
|
"vue-demi": "^0.13.11",
|
|
52
|
-
"@tanstack/query-core": "5.0.0-beta.
|
|
52
|
+
"@tanstack/query-core": "5.0.0-beta.9"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@vue/composition-api": "1.7.1",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"test:2.7": "vue-demi-switch 2.7 vue2.7 && vitest",
|
|
76
76
|
"test:3": "vue-demi-switch 3 && vitest",
|
|
77
77
|
"test:lib:dev": "pnpm run test:lib --watch",
|
|
78
|
-
"test:build": "publint --strict
|
|
78
|
+
"test:build": "publint --strict",
|
|
79
79
|
"build": "tsup"
|
|
80
80
|
}
|
|
81
81
|
}
|
|
@@ -16,8 +16,9 @@ describe('Discriminated union return type', () => {
|
|
|
16
16
|
}),
|
|
17
17
|
)
|
|
18
18
|
|
|
19
|
+
// TODO: Order of generics prevents pageParams to be typed correctly. Using `unknown` for now
|
|
19
20
|
const result: Expect<
|
|
20
|
-
Equal<InfiniteData<string> | undefined, typeof query.data>
|
|
21
|
+
Equal<InfiniteData<string, unknown> | undefined, typeof query.data>
|
|
21
22
|
> = true
|
|
22
23
|
return result
|
|
23
24
|
})
|
|
@@ -35,8 +36,10 @@ describe('Discriminated union return type', () => {
|
|
|
35
36
|
)
|
|
36
37
|
|
|
37
38
|
if (query.isSuccess) {
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
// TODO: Order of generics prevents pageParams to be typed correctly. Using `unknown` for now
|
|
40
|
+
const result: Expect<
|
|
41
|
+
Equal<InfiniteData<string, unknown>, typeof query.data>
|
|
42
|
+
> = true
|
|
40
43
|
return result
|
|
41
44
|
}
|
|
42
45
|
return
|
|
@@ -332,4 +332,24 @@ describe('useMutation', () => {
|
|
|
332
332
|
})
|
|
333
333
|
})
|
|
334
334
|
})
|
|
335
|
+
|
|
336
|
+
describe('throwOnError', () => {
|
|
337
|
+
test('should evaluate throwOnError when mutation is expected to throw', async () => {
|
|
338
|
+
const err = new Error('Expected mock error. All is well!')
|
|
339
|
+
const boundaryFn = vi.fn()
|
|
340
|
+
const { mutate } = useMutation({
|
|
341
|
+
mutationFn: () => {
|
|
342
|
+
return Promise.reject(err)
|
|
343
|
+
},
|
|
344
|
+
throwOnError: boundaryFn,
|
|
345
|
+
})
|
|
346
|
+
|
|
347
|
+
mutate()
|
|
348
|
+
|
|
349
|
+
await flushPromises()
|
|
350
|
+
|
|
351
|
+
expect(boundaryFn).toHaveBeenCalledTimes(1)
|
|
352
|
+
expect(boundaryFn).toHaveBeenCalledWith(err)
|
|
353
|
+
})
|
|
354
|
+
})
|
|
335
355
|
})
|
|
@@ -235,6 +235,28 @@ describe('useQuery', () => {
|
|
|
235
235
|
expect(status.value).toStrictEqual('pending')
|
|
236
236
|
})
|
|
237
237
|
|
|
238
|
+
describe('throwOnError', () => {
|
|
239
|
+
test('should evaluate throwOnError when query is expected to throw', async () => {
|
|
240
|
+
const boundaryFn = vi.fn()
|
|
241
|
+
useQuery({
|
|
242
|
+
queryKey: ['key0'],
|
|
243
|
+
queryFn: rejectFetcher,
|
|
244
|
+
retry: false,
|
|
245
|
+
throwOnError: boundaryFn,
|
|
246
|
+
})
|
|
247
|
+
|
|
248
|
+
await flushPromises()
|
|
249
|
+
|
|
250
|
+
expect(boundaryFn).toHaveBeenCalledTimes(1)
|
|
251
|
+
expect(boundaryFn).toHaveBeenCalledWith(
|
|
252
|
+
Error('Some error'),
|
|
253
|
+
expect.objectContaining({
|
|
254
|
+
state: expect.objectContaining({ status: 'error' }),
|
|
255
|
+
}),
|
|
256
|
+
)
|
|
257
|
+
})
|
|
258
|
+
})
|
|
259
|
+
|
|
238
260
|
describe('suspense', () => {
|
|
239
261
|
test('should return a Promise', () => {
|
|
240
262
|
const getCurrentInstanceSpy = getCurrentInstance as Mock
|
package/src/queryClient.ts
CHANGED
|
@@ -185,7 +185,7 @@ export class QueryClient extends QC {
|
|
|
185
185
|
TQueryKey,
|
|
186
186
|
TPageParam
|
|
187
187
|
>,
|
|
188
|
-
): Promise<InfiniteData<TData>>
|
|
188
|
+
): Promise<InfiniteData<TData, TPageParam>>
|
|
189
189
|
fetchInfiniteQuery<
|
|
190
190
|
TQueryFnData,
|
|
191
191
|
TError = DefaultError,
|
|
@@ -202,7 +202,7 @@ export class QueryClient extends QC {
|
|
|
202
202
|
TPageParam
|
|
203
203
|
>
|
|
204
204
|
>,
|
|
205
|
-
): Promise<InfiniteData<TData>> {
|
|
205
|
+
): Promise<InfiniteData<TData, TPageParam>> {
|
|
206
206
|
return super.fetchInfiniteQuery(cloneDeepUnref(options))
|
|
207
207
|
}
|
|
208
208
|
|