Skip to content

Commit 532ee6b

Browse files
author
Adebiyi Adedotun
committed
Merge branch 'master' of https://github.com/tannerlinsley/react-query into docs/fix
2 parents fcd68bc + 542ad07 commit 532ee6b

File tree

17 files changed

+161
-78
lines changed

17 files changed

+161
-78
lines changed

docs/src/pages/guides/default-query-function.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ If you find yourself wishing for whatever reason that you could just share the s
77

88
```js
99
// Define a default query function that will receive the query key
10+
// the queryKey is guaranteed to be an Array here
1011
const defaultQueryFn = async ({ queryKey }) => {
1112
const { data } = await axios.get(`https://jsonplaceholder.typicode.com${queryKey[0]}`);
1213
return data;

docs/src/pages/guides/mutations.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ A mutation can only be in one of the following states at any given moment:
4444
- `isError` or `status === 'error'` - The mutation encountered an error
4545
- `isSuccess` or `status === 'success'` - The mutation was successful and mutation data is available
4646

47-
Beyond those primary state, more information is available depending on the state of the mutation:
47+
Beyond those primary states, more information is available depending on the state of the mutation:
4848

4949
- `error` - If the mutation is in an `isError` state, the error is available via the `error` property.
5050
- `data` - If the mutation is in a `success` state, the data is available via the `data` property.

docs/src/pages/guides/placeholder-query-data.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ In some circumstances, you may be able to provide the placeholder data for a que
4343

4444
```js
4545
function Todo({ blogPostId }) {
46-
const result = useQuery(['blogPost', blogPostId], () => fetch('/blogPosts'), {
46+
const result = useQuery(['blogPost', blogPostId], () => fetch(`/blogPosts/${blogPostId}`), {
4747
placeholderData: () => {
4848
// Use the smaller/preview version of the blogPost from the 'blogPosts' query as the placeholder data for this blogPost query
4949
return queryClient

docs/src/pages/reference/useInfiniteQuery.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ The options for `useInfiniteQuery` are identical to the [`useQuery` hook](/refer
2727
- **Required, but only if no default query function has been defined** [`defaultQueryFn`](/guides/default-query-function)
2828
- The function that the query will use to request data.
2929
- Receives a `QueryFunctionContext` object with the following variables:
30-
- `queryKey: QueryKey`
30+
- `queryKey: EnsuredQueryKey`: the queryKey, guaranteed to be an Array
3131
- `pageParam: unknown | undefined`
32-
- Must return a promise that will either resolves data or throws an error.
32+
- Must return a promise that will either resolve data or throw an error.
3333
- Make sure you return the data *and* the `pageParam` if needed for use in the props below.
3434
- `getNextPageParam: (lastPage, allPages) => unknown | undefined`
3535
- When new data is received for this query, this function receives both the last page of the infinite list of data and the full array of all pages.

docs/src/pages/reference/useQuery.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ const result = useQuery({
7373
- **Required, but only if no default query function has been defined** See [Default Query Function](../guides/default-query-function) for more information.
7474
- The function that the query will use to request data.
7575
- Receives a `QueryFunctionContext` object with the following variables:
76-
- `queryKey: QueryKey`
77-
- Must return a promise that will either resolves data or throws an error.
76+
- `queryKey: EnsuredQueryKey`: the queryKey, guaranteed to be an Array
77+
- Must return a promise that will either resolve data or throw an error.
7878
- `enabled: boolean`
7979
- Set this to `false` to disable this query from automatically running.
8080
- Can be used for [Dependent Queries](../guides/dependent-queries).

package.json

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,10 @@
2222
],
2323
"scripts": {
2424
"test": "is-ci \"test:ci\" \"test:dev\"",
25-
"test:dev": "npm run test:types && npm run test:eslint && jest --watch",
26-
"test:ci": "npm run test:types && npm run test:eslint && jest",
25+
"test:dev": "npm run test:types && npm run test:format && npm run test:eslint && jest --watch",
26+
"test:ci": "npm run test:types && npm run test:format && npm run test:eslint && jest",
2727
"test:coverage": "yarn test:ci; open coverage/lcov-report/index.html",
28+
"test:format": "yarn prettier --check",
2829
"test:types": "tsc",
2930
"test:eslint": "eslint --ext .ts,.tsx ./src",
3031
"build": "yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types",
@@ -38,8 +39,9 @@
3839
"watch:umd": "rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json",
3940
"watch:types": "rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent",
4041
"now-build": "yarn && cd www && yarn && yarn build",
42+
"prettier": "prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"",
4143
"start": "yarn watch",
42-
"format": "prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write",
44+
"format": "yarn prettier --write",
4345
"stats": "open ./stats.html"
4446
},
4547
"files": [
@@ -108,7 +110,7 @@
108110
"eslint-plugin-standard": "^4.0.1",
109111
"is-ci-cli": "^2.1.1",
110112
"jest": "^26.0.1",
111-
"prettier": "^2.0.5",
113+
"prettier": "2.2.1",
112114
"react": "^16.13.0",
113115
"react-dom": "^16.13.1",
114116
"react-error-boundary": "^2.2.2",

src/core/focusManager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class FocusManager extends Subscribable {
1717
if (this.removeEventListener) {
1818
this.removeEventListener()
1919
}
20-
this.removeEventListener = setup((focused) => {
20+
this.removeEventListener = setup(focused => {
2121
if (typeof focused === 'boolean') {
2222
this.setFocused(focused)
2323
} else {

src/core/mutationCache.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,7 @@ export class MutationCache extends Subscribable<MutationCacheListener> {
7676
return this.mutations
7777
}
7878

79-
find<
80-
TData = unknown,
81-
TError = unknown,
82-
TVariables = any,
83-
TContext = unknown
84-
>(
79+
find<TData = unknown, TError = unknown, TVariables = any, TContext = unknown>(
8580
filters: MutationFilters
8681
): Mutation<TData, TError, TVariables, TContext> | undefined {
8782
if (typeof filters.exact === 'undefined') {

src/core/query.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@ import {
55
noop,
66
replaceEqualDeep,
77
timeUntilStale,
8+
ensureQueryKeyArray,
89
} from './utils'
910
import type {
1011
InitialDataFunction,
1112
QueryKey,
1213
QueryOptions,
1314
QueryStatus,
1415
QueryFunctionContext,
16+
EnsuredQueryKey,
1517
} from './types'
1618
import type { QueryCache } from './queryCache'
1719
import type { QueryObserver } from './queryObserver'
@@ -58,8 +60,8 @@ export interface FetchContext<
5860
> {
5961
fetchFn: () => unknown | Promise<unknown>
6062
fetchOptions?: FetchOptions
61-
options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>
62-
queryKey: TQueryKey
63+
options: QueryOptions<TQueryFnData, TError, TData, any>
64+
queryKey: EnsuredQueryKey<TQueryKey>
6365
state: QueryState<TData, TError>
6466
}
6567

@@ -380,9 +382,11 @@ export class Query<
380382
}
381383
}
382384

385+
const queryKey = ensureQueryKeyArray(this.queryKey)
386+
383387
// Create query function context
384388
const queryFnContext: QueryFunctionContext<TQueryKey> = {
385-
queryKey: this.queryKey,
389+
queryKey,
386390
pageParam: undefined,
387391
}
388392

@@ -393,10 +397,10 @@ export class Query<
393397
: Promise.reject('Missing queryFn')
394398

395399
// Trigger behavior hook
396-
const context: FetchContext<TQueryFnData, TError, TData, any> = {
400+
const context: FetchContext<TQueryFnData, TError, TData, TQueryKey> = {
397401
fetchOptions,
398402
options: this.options,
399-
queryKey: this.queryKey,
403+
queryKey: queryKey,
400404
state: this.state,
401405
fetchFn,
402406
}

src/core/queryClient.ts

Lines changed: 72 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -252,19 +252,39 @@ export class QueryClient {
252252
return promise
253253
}
254254

255-
fetchQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
255+
fetchQuery<
256+
TQueryFnData = unknown,
257+
TError = unknown,
258+
TData = TQueryFnData,
259+
TQueryKey extends QueryKey = QueryKey
260+
>(
256261
options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>
257262
): Promise<TData>
258-
fetchQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
263+
fetchQuery<
264+
TQueryFnData = unknown,
265+
TError = unknown,
266+
TData = TQueryFnData,
267+
TQueryKey extends QueryKey = QueryKey
268+
>(
259269
queryKey: TQueryKey,
260270
options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>
261271
): Promise<TData>
262-
fetchQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
272+
fetchQuery<
273+
TQueryFnData = unknown,
274+
TError = unknown,
275+
TData = TQueryFnData,
276+
TQueryKey extends QueryKey = QueryKey
277+
>(
263278
queryKey: TQueryKey,
264279
queryFn: QueryFunction<TQueryFnData, TQueryKey>,
265280
options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>
266281
): Promise<TData>
267-
fetchQuery<TQueryFnData, TError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
282+
fetchQuery<
283+
TQueryFnData,
284+
TError,
285+
TData = TQueryFnData,
286+
TQueryKey extends QueryKey = QueryKey
287+
>(
268288
arg1: TQueryKey | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
269289
arg2?:
270290
| QueryFunction<TQueryFnData, TQueryKey>
@@ -286,21 +306,43 @@ export class QueryClient {
286306
: Promise.resolve(query.state.data as TData)
287307
}
288308

289-
prefetchQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
309+
prefetchQuery<
310+
TQueryFnData = unknown,
311+
TError = unknown,
312+
TData = TQueryFnData,
313+
TQueryKey extends QueryKey = QueryKey
314+
>(
290315
options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>
291316
): Promise<void>
292-
prefetchQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
317+
prefetchQuery<
318+
TQueryFnData = unknown,
319+
TError = unknown,
320+
TData = TQueryFnData,
321+
TQueryKey extends QueryKey = QueryKey
322+
>(
293323
queryKey: TQueryKey,
294324
options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>
295325
): Promise<void>
296-
prefetchQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
326+
prefetchQuery<
327+
TQueryFnData = unknown,
328+
TError = unknown,
329+
TData = TQueryFnData,
330+
TQueryKey extends QueryKey = QueryKey
331+
>(
297332
queryKey: TQueryKey,
298333
queryFn: QueryFunction<TQueryFnData, TQueryKey>,
299334
options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>
300335
): Promise<void>
301-
prefetchQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
336+
prefetchQuery<
337+
TQueryFnData = unknown,
338+
TError = unknown,
339+
TData = TQueryFnData,
340+
TQueryKey extends QueryKey = QueryKey
341+
>(
302342
arg1: TQueryKey | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
303-
arg2?: QueryFunction<TQueryFnData, TQueryKey> | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
343+
arg2?:
344+
| QueryFunction<TQueryFnData, TQueryKey>
345+
| FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
304346
arg3?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>
305347
): Promise<void> {
306348
return this.fetchQuery(arg1 as any, arg2 as any, arg3)
@@ -335,8 +377,15 @@ export class QueryClient {
335377
queryFn: QueryFunction<TQueryFnData, TQueryKey>,
336378
options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>
337379
): Promise<InfiniteData<TData>>
338-
fetchInfiniteQuery<TQueryFnData, TError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
339-
arg1: TQueryKey | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
380+
fetchInfiniteQuery<
381+
TQueryFnData,
382+
TError,
383+
TData = TQueryFnData,
384+
TQueryKey extends QueryKey = QueryKey
385+
>(
386+
arg1:
387+
| TQueryKey
388+
| FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
340389
arg2?:
341390
| QueryFunction<TQueryFnData, TQueryKey>
342391
| FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
@@ -356,15 +405,15 @@ export class QueryClient {
356405
TError = unknown,
357406
TData = TQueryFnData,
358407
TQueryKey extends QueryKey = QueryKey
359-
>(
408+
>(
360409
options: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>
361410
): Promise<void>
362411
prefetchInfiniteQuery<
363412
TQueryFnData = unknown,
364413
TError = unknown,
365414
TData = TQueryFnData,
366415
TQueryKey extends QueryKey = QueryKey
367-
>(
416+
>(
368417
queryKey: TQueryKey,
369418
options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>
370419
): Promise<void>
@@ -373,13 +422,20 @@ export class QueryClient {
373422
TError = unknown,
374423
TData = TQueryFnData,
375424
TQueryKey extends QueryKey = QueryKey
376-
>(
425+
>(
377426
queryKey: TQueryKey,
378427
queryFn: QueryFunction<TQueryFnData, TQueryKey>,
379428
options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>
380429
): Promise<void>
381-
prefetchInfiniteQuery<TQueryFnData, TError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(
382-
arg1: TQueryKey | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
430+
prefetchInfiniteQuery<
431+
TQueryFnData,
432+
TError,
433+
TData = TQueryFnData,
434+
TQueryKey extends QueryKey = QueryKey
435+
>(
436+
arg1:
437+
| TQueryKey
438+
| FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
383439
arg2?:
384440
| QueryFunction<TQueryFnData, TQueryKey>
385441
| FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,

0 commit comments

Comments
 (0)