Skip to content

Commit 3b6f390

Browse files
committed
feat: compatible error
1 parent 361592b commit 3b6f390

6 files changed

Lines changed: 47 additions & 20 deletions

File tree

src/createInfiniteQuery.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
import { useInfiniteQuery } from '@tanstack/react-query'
22

33
import { createBaseQuery } from './createBaseQuery'
4-
import type { CreateInfiniteQueryOptions, InfiniteQueryHook } from './types'
4+
import type {
5+
CompatibleError,
6+
CreateInfiniteQueryOptions,
7+
InfiniteQueryHook,
8+
} from './types'
59

610
export const createInfiniteQuery = <
711
TFnData,
812
TVariables = void,
9-
TError = Error,
13+
TError = CompatibleError,
1014
TPageParam = number
1115
>(
1216
options: CreateInfiniteQueryOptions<TFnData, TVariables, TError, TPageParam>

src/createMutation.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
import { useMutation } from '@tanstack/react-query'
22

3-
import type { CreateMutationOptions, MutationHook } from './types'
3+
import type {
4+
CompatibleError,
5+
CreateMutationOptions,
6+
MutationHook,
7+
} from './types'
48
import { withMiddleware } from './utils'
59

610
export const createMutation = <
711
TData = unknown,
812
TVariables = void,
9-
TError = Error,
13+
TError = CompatibleError,
1014
TContext = unknown
1115
>(
1216
defaultOptions: CreateMutationOptions<TData, TVariables, TError, TContext>

src/createQuery.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
import { useQuery } from '@tanstack/react-query'
22

33
import { createBaseQuery } from './createBaseQuery'
4-
import type { CreateQueryOptions, QueryHook } from './types'
4+
import type { CompatibleError, CreateQueryOptions, QueryHook } from './types'
55

6-
export const createQuery = <TFnData, TVariables = void, TError = Error>(
6+
export const createQuery = <
7+
TFnData,
8+
TVariables = void,
9+
TError = CompatibleError
10+
>(
711
options: CreateQueryOptions<TFnData, TVariables, TError>
812
): QueryHook<TFnData, TVariables, TError> => {
913
return createBaseQuery(options, useQuery)

src/createSuspenseInfiniteQuery.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { useInfiniteQuery } from '@tanstack/react-query'
22

33
import { createBaseQuery } from './createBaseQuery'
44
import type {
5+
CompatibleError,
56
CreateSuspenseInfiniteQueryOptions,
67
SuspenseInfiniteQueryHook,
78
} from './types'
@@ -10,7 +11,7 @@ import { suspenseOptions } from './utils'
1011
export const createSuspenseInfiniteQuery = <
1112
TFnData,
1213
TVariables = void,
13-
TError = Error,
14+
TError = CompatibleError,
1415
TPageParam = number
1516
>(
1617
options: CreateSuspenseInfiniteQueryOptions<

src/createSuspenseQuery.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
11
import { useQuery } from '@tanstack/react-query'
22

33
import { createBaseQuery } from './createBaseQuery'
4-
import type { CreateSuspenseQueryOptions, SuspenseQueryHook } from './types'
4+
import type {
5+
CompatibleError,
6+
CreateSuspenseQueryOptions,
7+
SuspenseQueryHook,
8+
} from './types'
59
import { suspenseOptions } from './utils'
610

7-
export const createSuspenseQuery = <TFnData, TVariables = void, TError = Error>(
11+
export const createSuspenseQuery = <
12+
TFnData,
13+
TVariables = void,
14+
TError = CompatibleError
15+
>(
816
options: CreateSuspenseQueryOptions<TFnData, TVariables, TError>
917
): SuspenseQueryHook<TFnData, TVariables, TError> => {
1018
return createBaseQuery(options, useQuery, suspenseOptions)

src/types.ts

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type {
2+
DefaultError,
23
DefinedUseQueryResult,
34
GetNextPageParamFunction,
45
GetPreviousPageParamFunction,
@@ -90,6 +91,8 @@ type WithRequired<T, K extends keyof T> = T & {
9091
[_ in K]: {}
9192
}
9293

94+
export type CompatibleError = CompatibleWithV4<DefaultError, Error>
95+
9396
export type inferQueryKey<TVariables> = TVariables extends void
9497
? [string]
9598
: [string, TVariables]
@@ -161,7 +164,7 @@ export type ExposeMethods<TFnData, TVariables, TPageParam = never> = {
161164
export interface CreateQueryOptions<
162165
TFnData = unknown,
163166
TVariables = void,
164-
TError = Error
167+
TError = CompatibleError
165168
> extends Omit<
166169
UseQueryOptions<TFnData, TError, TFnData, inferQueryKey<TVariables>>,
167170
'queryKey' | 'queryFn' | 'select'
@@ -194,8 +197,11 @@ export type DefinedQueryHookResult<TData, TError> = DefinedUseQueryResult<
194197
TError
195198
>
196199

197-
export interface QueryHook<TFnData = unknown, TVariables = any, TError = Error>
198-
extends ExposeMethods<TFnData, TVariables> {
200+
export interface QueryHook<
201+
TFnData = unknown,
202+
TVariables = any,
203+
TError = CompatibleError
204+
> extends ExposeMethods<TFnData, TVariables> {
199205
<TData = TFnData>(
200206
options: DefinedQueryHookOptions<TFnData, TError, TData, TVariables>,
201207
queryClient?: CompatibleWithV4<QueryClient, void>
@@ -211,7 +217,7 @@ export interface QueryHook<TFnData = unknown, TVariables = any, TError = Error>
211217
export interface CreateSuspenseQueryOptions<
212218
TFnData = unknown,
213219
TVariables = void,
214-
TError = Error
220+
TError = CompatibleError
215221
> extends Omit<
216222
UseQueryOptions<TFnData, TError, TFnData, inferQueryKey<TVariables>>,
217223
| 'queryKey'
@@ -253,7 +259,7 @@ export type SuspenseQueryHookResult<TData, TError> = Omit<
253259
export interface SuspenseQueryHook<
254260
TFnData = unknown,
255261
TVariables = void,
256-
TError = Error
262+
TError = CompatibleError
257263
> extends ExposeMethods<TFnData, TVariables> {
258264
<TData = TFnData>(
259265
options?: SuspenseQueryHookOptions<TFnData, TError, TData, TVariables>,
@@ -266,7 +272,7 @@ export interface SuspenseQueryHook<
266272
export interface CreateInfiniteQueryOptions<
267273
TFnData = unknown,
268274
TVariables = void,
269-
TError = Error,
275+
TError = CompatibleError,
270276
TPageParam = number
271277
> extends Omit<
272278
CompatibleUseInfiniteQueryOptions<
@@ -335,7 +341,7 @@ export type DefinedInfiniteQueryHookResult<TData, TError> = WithRequired<
335341
export interface InfiniteQueryHook<
336342
TFnData = unknown,
337343
TVariables = void,
338-
TError = Error,
344+
TError = CompatibleError,
339345
TPageParam = number
340346
> extends ExposeMethods<TFnData, TVariables, TPageParam> {
341347
<TData = CompatibleWithV4<InfiniteData<TFnData, TPageParam>, TFnData>>(
@@ -365,7 +371,7 @@ export interface InfiniteQueryHook<
365371
export interface CreateSuspenseInfiniteQueryOptions<
366372
TFnData = unknown,
367373
TVariables = void,
368-
TError = Error,
374+
TError = CompatibleError,
369375
TPageParam = number
370376
> extends Omit<
371377
CompatibleUseInfiniteQueryOptions<
@@ -428,7 +434,7 @@ export type SuspenseInfiniteQueryHookResult<TData, TError> = Omit<
428434
export interface SuspenseInfiniteQueryHook<
429435
TFnData = unknown,
430436
TVariables = void,
431-
TError = Error,
437+
TError = CompatibleError,
432438
TPageParam = number
433439
> extends ExposeMethods<TFnData, TVariables, TPageParam> {
434440
<TData = CompatibleWithV4<InfiniteData<TFnData, TPageParam>, TFnData>>(
@@ -448,7 +454,7 @@ export interface SuspenseInfiniteQueryHook<
448454
export interface CreateMutationOptions<
449455
TData = unknown,
450456
TVariables = void,
451-
TError = Error,
457+
TError = CompatibleError,
452458
TContext = unknown
453459
> extends UseMutationOptions<TData, TError, TVariables, TContext> {
454460
use?: Middleware<MutationHook<TData, TError, TVariables>>[]
@@ -465,7 +471,7 @@ export interface MutationHookOptions<TData, TError, TVariables, TContext>
465471

466472
export type MutationHookResult<
467473
TData = unknown,
468-
TError = Error,
474+
TError = CompatibleError,
469475
TVariables = void,
470476
TContext = unknown
471477
> = UseMutationResult<TData, TError, TVariables, TContext>

0 commit comments

Comments
 (0)