Skip to content

Commit 9b285d9

Browse files
feat(svelte-query): Simplify types (#5442)
1 parent cd84ed8 commit 9b285d9

File tree

10 files changed

+90
-95
lines changed

10 files changed

+90
-95
lines changed

packages/svelte-query-devtools/tsconfig.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
"checkJs": true,
66
"esModuleInterop": true,
77
"forceConsistentCasingInFileNames": true,
8-
"importsNotUsedAsValues": "error",
98
"isolatedModules": true,
10-
"preserveValueImports": true,
119
"lib": ["esnext", "DOM", "DOM.Iterable"],
1210
"moduleResolution": "node",
1311
"module": "esnext",
@@ -23,8 +21,7 @@
2321
"sourceMap": true,
2422
"strict": true,
2523
"strictNullChecks": true,
26-
"target": "esnext",
27-
"tsBuildInfoFile": "./build/.tsbuildinfo"
24+
"target": "esnext"
2825
},
2926
"include": ["src/**/*.js", "src/**/*.ts", "src/**/*.svelte", ".eslintrc.cjs", "vite.config.ts"]
3027
}

packages/svelte-query/src/__tests__/CreateQuery.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
import { QueryClient } from '@tanstack/query-core'
33
import { setQueryClientContext } from '../context'
44
import { createQuery } from '../createQuery'
5-
import type { CreateQueryOptions, WritableOrVal } from '../types'
5+
import type { CreateQueryOptions } from '../types'
66
7-
export let options: WritableOrVal<CreateQueryOptions<any>>
7+
export let options: CreateQueryOptions<any>
88
99
const queryClient = new QueryClient()
1010
setQueryClientContext(queryClient)

packages/svelte-query/src/__tests__/createQuery.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { render, waitFor } from '@testing-library/svelte'
33
import { writable } from 'svelte/store'
44
import CreateQuery from './CreateQuery.svelte'
55
import { sleep } from './utils'
6-
import type { CreateQueryOptions, WritableOrVal } from '../types'
6+
import type { CreateQueryOptions } from '../types'
77

88
describe('createQuery', () => {
99
it('Render and wait for success', async () => {
@@ -29,7 +29,7 @@ describe('createQuery', () => {
2929
})
3030

3131
it('should keep previous data when returned as placeholder data', async () => {
32-
const options: WritableOrVal<CreateQueryOptions> = writable({
32+
const options: CreateQueryOptions = writable({
3333
queryKey: ['test', [1]],
3434
queryFn: async ({ queryKey }) => {
3535
await sleep(10)

packages/svelte-query/src/createBaseQuery.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
import type { QueryClient, QueryKey, QueryObserver } from '@tanstack/query-core'
22
import { notifyManager } from '@tanstack/query-core'
3-
import type {
4-
CreateBaseQueryOptions,
5-
CreateBaseQueryResult,
6-
WritableOrVal,
7-
} from './types'
3+
import type { CreateBaseQueryOptions, CreateBaseQueryResult } from './types'
84
import { useQueryClient } from './useQueryClient'
95
import { derived, get, readable, writable } from 'svelte/store'
106
import { isWritable } from './utils'
@@ -16,8 +12,12 @@ export function createBaseQuery<
1612
TQueryData,
1713
TQueryKey extends QueryKey,
1814
>(
19-
options: WritableOrVal<
20-
CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>
15+
options: CreateBaseQueryOptions<
16+
TQueryFnData,
17+
TError,
18+
TData,
19+
TQueryData,
20+
TQueryKey
2121
>,
2222
Observer: typeof QueryObserver,
2323
queryClient?: QueryClient,

packages/svelte-query/src/createInfiniteQuery.ts

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import { InfiniteQueryObserver } from '@tanstack/query-core'
99
import type {
1010
CreateInfiniteQueryOptions,
1111
CreateInfiniteQueryResult,
12-
WritableOrVal,
1312
} from './types'
1413
import { createBaseQuery } from './createBaseQuery'
1514

@@ -20,15 +19,13 @@ export function createInfiniteQuery<
2019
TQueryKey extends QueryKey = QueryKey,
2120
TPageParam = unknown,
2221
>(
23-
options: WritableOrVal<
24-
CreateInfiniteQueryOptions<
25-
TQueryFnData,
26-
TError,
27-
TData,
28-
TQueryFnData,
29-
TQueryKey,
30-
TPageParam
31-
>
22+
options: CreateInfiniteQueryOptions<
23+
TQueryFnData,
24+
TError,
25+
TData,
26+
TQueryFnData,
27+
TQueryKey,
28+
TPageParam
3229
>,
3330
queryClient?: QueryClient,
3431
): CreateInfiniteQueryResult<TData, TError> {

packages/svelte-query/src/createMutation.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import type {
55
CreateMutateFunction,
66
CreateMutationOptions,
77
CreateMutationResult,
8-
WritableOrVal,
98
} from './types'
109
import { useQueryClient } from './useQueryClient'
1110
import { isWritable } from './utils'
@@ -16,9 +15,7 @@ export function createMutation<
1615
TVariables = void,
1716
TContext = unknown,
1817
>(
19-
options: WritableOrVal<
20-
CreateMutationOptions<TData, TError, TVariables, TContext>
21-
>,
18+
options: CreateMutationOptions<TData, TError, TVariables, TContext>,
2219
queryClient?: QueryClient,
2320
): CreateMutationResult<TData, TError, TVariables, TContext> {
2421
const client = useQueryClient(queryClient)

packages/svelte-query/src/createQueries.ts

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,25 @@ import type {
66
QueryObserverResult,
77
DefaultError,
88
QueriesObserverOptions,
9+
QueryObserverOptions,
910
} from '@tanstack/query-core'
1011

1112
import { notifyManager, QueriesObserver } from '@tanstack/query-core'
1213
import { derived, get, readable, writable, type Readable } from 'svelte/store'
1314

14-
import type { CreateQueryOptions, WritableOrVal } from './types'
15+
import type { WritableOrVal } from './types'
1516
import { useQueryClient } from './useQueryClient'
1617
import { isWritable } from './utils'
1718

1819
// This defines the `CreateQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.
1920
// `placeholderData` function does not have a parameter
20-
type CreateQueryOptionsForCreateQueries<
21+
type QueryObserverOptionsForCreateQueries<
2122
TQueryFnData = unknown,
2223
TError = DefaultError,
2324
TData = TQueryFnData,
2425
TQueryKey extends QueryKey = QueryKey,
2526
> = Omit<
26-
CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
27+
QueryObserverOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,
2728
'placeholderData'
2829
> & {
2930
placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>
@@ -39,33 +40,38 @@ type GetOptions<T> =
3940
error?: infer TError
4041
data: infer TData
4142
}
42-
? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData>
43+
? QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData>
4344
: T extends { queryFnData: infer TQueryFnData; error?: infer TError }
44-
? CreateQueryOptionsForCreateQueries<TQueryFnData, TError>
45+
? QueryObserverOptionsForCreateQueries<TQueryFnData, TError>
4546
: T extends { data: infer TData; error?: infer TError }
46-
? CreateQueryOptionsForCreateQueries<unknown, TError, TData>
47+
? QueryObserverOptionsForCreateQueries<unknown, TError, TData>
4748
: // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]
4849
T extends [infer TQueryFnData, infer TError, infer TData]
49-
? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData>
50+
? QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData>
5051
: T extends [infer TQueryFnData, infer TError]
51-
? CreateQueryOptionsForCreateQueries<TQueryFnData, TError>
52+
? QueryObserverOptionsForCreateQueries<TQueryFnData, TError>
5253
: T extends [infer TQueryFnData]
53-
? CreateQueryOptionsForCreateQueries<TQueryFnData>
54+
? QueryObserverOptionsForCreateQueries<TQueryFnData>
5455
: // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided
5556
T extends {
5657
queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>
5758
select: (data: any) => infer TData
5859
}
59-
? CreateQueryOptionsForCreateQueries<TQueryFnData, Error, TData, TQueryKey>
60+
? QueryObserverOptionsForCreateQueries<
61+
TQueryFnData,
62+
Error,
63+
TData,
64+
TQueryKey
65+
>
6066
: T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }
61-
? CreateQueryOptionsForCreateQueries<
67+
? QueryObserverOptionsForCreateQueries<
6268
TQueryFnData,
6369
Error,
6470
TQueryFnData,
6571
TQueryKey
6672
>
6773
: // Fallback
68-
CreateQueryOptionsForCreateQueries
74+
QueryObserverOptionsForCreateQueries
6975

7076
type GetResults<T> =
7177
// Part 1: responsible for mapping explicit type parameter to function result, if object
@@ -101,7 +107,7 @@ export type QueriesOptions<
101107
Result extends any[] = [],
102108
Depth extends ReadonlyArray<number> = [],
103109
> = Depth['length'] extends MAXIMUM_DEPTH
104-
? CreateQueryOptionsForCreateQueries[]
110+
? QueryObserverOptionsForCreateQueries[]
105111
: T extends []
106112
? []
107113
: T extends [infer Head]
@@ -112,15 +118,20 @@ export type QueriesOptions<
112118
? T
113119
: // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!
114120
// use this to infer the param types in the case of Array.map() argument
115-
T extends CreateQueryOptionsForCreateQueries<
121+
T extends QueryObserverOptionsForCreateQueries<
116122
infer TQueryFnData,
117123
infer TError,
118124
infer TData,
119125
infer TQueryKey
120126
>[]
121-
? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>[]
127+
? QueryObserverOptionsForCreateQueries<
128+
TQueryFnData,
129+
TError,
130+
TData,
131+
TQueryKey
132+
>[]
122133
: // Fallback
123-
CreateQueryOptionsForCreateQueries[]
134+
QueryObserverOptionsForCreateQueries[]
124135

125136
/**
126137
* QueriesResults reducer recursively maps type param to results
@@ -137,7 +148,7 @@ export type QueriesResults<
137148
? [...Result, GetResults<Head>]
138149
: T extends [infer Head, ...infer Tail]
139150
? QueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>
140-
: T extends CreateQueryOptionsForCreateQueries<
151+
: T extends QueryObserverOptionsForCreateQueries<
141152
infer TQueryFnData,
142153
infer TError,
143154
infer TData,

packages/svelte-query/src/createQuery.ts

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import type {
55
DefinedCreateQueryResult,
66
CreateQueryOptions,
77
CreateQueryResult,
8-
WritableOrVal,
98
} from './types'
109

1110
type UndefinedInitialDataOptions<
@@ -32,9 +31,7 @@ export function createQuery<
3231
TData = TQueryFnData,
3332
TQueryKey extends QueryKey = QueryKey,
3433
>(
35-
options: WritableOrVal<
36-
UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>
37-
>,
34+
options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
3835
queryClient?: QueryClient,
3936
): CreateQueryResult<TData, TError>
4037

@@ -44,9 +41,7 @@ export function createQuery<
4441
TData = TQueryFnData,
4542
TQueryKey extends QueryKey = QueryKey,
4643
>(
47-
options: WritableOrVal<
48-
DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>
49-
>,
44+
options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
5045
queryClient?: QueryClient,
5146
): DefinedCreateQueryResult<TData, TError>
5247

@@ -56,9 +51,7 @@ export function createQuery<
5651
TData = TQueryFnData,
5752
TQueryKey extends QueryKey = QueryKey,
5853
>(
59-
options: WritableOrVal<
60-
CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>
61-
>,
54+
options: CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
6255
queryClient?: QueryClient,
6356
) {
6457
return createBaseQuery(options, QueryObserver, queryClient)

0 commit comments

Comments
 (0)