Skip to content

Commit 865095d

Browse files
Zen-cronicTkDodo
andauthored
fix(solid-query): export queryOptions without type errors (#9668)
* fix(solid-query): add missing generic error type * refactor(solid-query): remove unused generic type * test(solid-query): add case for error tag --------- Co-authored-by: Dominik Dorfmeister <[email protected]>
1 parent 0eaafe0 commit 865095d

File tree

2 files changed

+16
-13
lines changed

2 files changed

+16
-13
lines changed

packages/solid-query/src/__tests__/queryOptions.test-d.tsx

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
import { assertType, describe, expectTypeOf, it } from 'vitest'
2-
import { QueryClient, dataTagSymbol, skipToken } from '@tanstack/query-core'
2+
import {
3+
QueryClient,
4+
dataTagErrorSymbol,
5+
dataTagSymbol,
6+
skipToken,
7+
} from '@tanstack/query-core'
38
import { useQuery } from '../useQuery'
49
import { queryOptions } from '../queryOptions'
510

@@ -74,6 +79,14 @@ describe('queryOptions', () => {
7479

7580
expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf<number>()
7681
})
82+
it('should tag the queryKey with the default error type', () => {
83+
const { queryKey } = queryOptions({
84+
queryKey: ['key'],
85+
queryFn: () => Promise.resolve(1),
86+
})
87+
88+
expectTypeOf(queryKey[dataTagErrorSymbol]).toEqualTypeOf<Error>()
89+
})
7790
it('should return the proper type when passed to getQueryData', () => {
7891
const { queryKey } = queryOptions({
7992
queryKey: ['key'],

packages/solid-query/src/queryOptions.ts

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,39 +29,29 @@ export function queryOptions<
2929
TError = DefaultError,
3030
TData = TQueryFnData,
3131
TQueryKey extends QueryKey = QueryKey,
32-
TOptions extends ReturnType<
33-
UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>
34-
> = ReturnType<
35-
UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>
36-
>,
3732
>(
3833
options: ReturnType<
3934
UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>
4035
>,
4136
): ReturnType<
4237
UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>
4338
> & {
44-
queryKey: DataTag<TQueryKey, TQueryFnData>
39+
queryKey: DataTag<TQueryKey, TQueryFnData, TError>
4540
}
4641

4742
export function queryOptions<
4843
TQueryFnData = unknown,
4944
TError = DefaultError,
5045
TData = TQueryFnData,
5146
TQueryKey extends QueryKey = QueryKey,
52-
TOptions extends ReturnType<
53-
DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>
54-
> = ReturnType<
55-
DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>
56-
>,
5747
>(
5848
options: ReturnType<
5949
DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>
6050
>,
6151
): ReturnType<
6252
DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>
6353
> & {
64-
queryKey: DataTag<TQueryKey, TQueryFnData>
54+
queryKey: DataTag<TQueryKey, TQueryFnData, TError>
6555
}
6656

6757
export function queryOptions(options: unknown) {

0 commit comments

Comments
 (0)