@tanstack/solid-query 5.0.0-alpha.5 → 5.0.0-alpha.51
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/lib/index.cjs +33 -0
- package/build/source/QueryClient.js +6 -0
- package/build/source/__tests__/QueryClientProvider.test.jsx +2 -3
- package/build/source/__tests__/createInfiniteQuery.test.jsx +58 -13
- package/build/source/__tests__/createMutation.test.jsx +5 -5
- package/build/source/__tests__/createQueries.test.jsx +6 -77
- package/build/source/__tests__/createQuery.test.jsx +51 -261
- package/build/source/__tests__/createQuery.types.test.jsx +19 -1
- package/build/source/__tests__/suspense.test.jsx +7 -69
- package/build/source/__tests__/transition.test.jsx +1 -1
- package/build/source/__tests__/useIsFetching.test.jsx +1 -1
- package/build/source/__tests__/useIsMutating.test.jsx +5 -7
- package/build/source/__tests__/utils.jsx +1 -1
- package/build/source/createBaseQuery.js +49 -23
- package/build/source/createMutation.js +1 -1
- package/build/source/createQueries.js +13 -7
- package/build/source/createQuery.js +3 -0
- package/build/source/index.js +2 -1
- package/build/types/QueryClient.d.ts +30 -0
- package/build/types/QueryClient.d.ts.map +1 -0
- package/build/types/QueryClientProvider.d.ts +3 -2
- package/build/types/QueryClientProvider.d.ts.map +1 -0
- package/build/types/__tests__/QueryClientProvider.test.d.ts +1 -0
- package/build/types/__tests__/QueryClientProvider.test.d.ts.map +1 -0
- package/build/types/__tests__/createInfiniteQuery.test.d.ts +1 -0
- package/build/types/__tests__/createInfiniteQuery.test.d.ts.map +1 -0
- package/build/types/__tests__/createMutation.test.d.ts +1 -0
- package/build/types/__tests__/createMutation.test.d.ts.map +1 -0
- package/build/types/__tests__/createQueries.test.d.ts +1 -0
- package/build/types/__tests__/createQueries.test.d.ts.map +1 -0
- package/build/types/__tests__/createQuery.test.d.ts +1 -0
- package/build/types/__tests__/createQuery.test.d.ts.map +1 -0
- package/build/types/__tests__/createQuery.types.test.d.ts +3 -2
- package/build/types/__tests__/createQuery.types.test.d.ts.map +1 -0
- package/build/types/__tests__/suspense.test.d.ts +1 -0
- package/build/types/__tests__/suspense.test.d.ts.map +1 -0
- package/build/types/__tests__/transition.test.d.ts +1 -0
- package/build/types/__tests__/transition.test.d.ts.map +1 -0
- package/build/types/__tests__/useIsFetching.test.d.ts +1 -0
- package/build/types/__tests__/useIsFetching.test.d.ts.map +1 -0
- package/build/types/__tests__/useIsMutating.test.d.ts +1 -0
- package/build/types/__tests__/useIsMutating.test.d.ts.map +1 -0
- package/build/types/__tests__/utils.d.ts +4 -3
- package/build/types/__tests__/utils.d.ts.map +1 -0
- package/build/types/createBaseQuery.d.ts +3 -1
- package/build/types/createBaseQuery.d.ts.map +1 -0
- package/build/types/createInfiniteQuery.d.ts +3 -1
- package/build/types/createInfiniteQuery.d.ts.map +1 -0
- package/build/types/createMutation.d.ts +3 -1
- package/build/types/createMutation.d.ts.map +1 -0
- package/build/types/createQueries.d.ts +12 -9
- package/build/types/createQueries.d.ts.map +1 -0
- package/build/types/createQuery.d.ts +7 -3
- package/build/types/createQuery.d.ts.map +1 -0
- package/build/types/index.d.ts +4 -1
- package/build/types/index.d.ts.map +1 -0
- package/build/types/setBatchUpdatesFn.d.ts +1 -0
- package/build/types/setBatchUpdatesFn.d.ts.map +1 -0
- package/build/types/types.d.ts +17 -15
- package/build/types/types.d.ts.map +1 -0
- package/build/types/useIsFetching.d.ts +3 -1
- package/build/types/useIsFetching.d.ts.map +1 -0
- package/build/types/useIsMutating.d.ts +3 -1
- package/build/types/useIsMutating.d.ts.map +1 -0
- package/build/types/utils.d.ts +1 -0
- package/build/types/utils.d.ts.map +1 -0
- package/package.json +20 -19
- package/src/QueryClient.ts +84 -0
- package/src/QueryClientProvider.tsx +1 -1
- package/src/__tests__/QueryClientProvider.test.tsx +2 -3
- package/src/__tests__/createInfiniteQuery.test.tsx +83 -19
- package/src/__tests__/createMutation.test.tsx +5 -5
- package/src/__tests__/createQueries.test.tsx +6 -78
- package/src/__tests__/createQuery.test.tsx +66 -334
- package/src/__tests__/createQuery.types.test.tsx +21 -1
- package/src/__tests__/suspense.test.tsx +7 -90
- package/src/__tests__/transition.test.tsx +1 -1
- package/src/__tests__/useIsFetching.test.tsx +1 -1
- package/src/__tests__/useIsMutating.test.tsx +5 -7
- package/src/__tests__/utils.tsx +1 -1
- package/src/createBaseQuery.ts +73 -28
- package/src/createInfiniteQuery.ts +1 -1
- package/src/createMutation.ts +3 -2
- package/src/createQueries.ts +32 -14
- package/src/createQuery.ts +24 -1
- package/src/index.ts +8 -1
- package/src/types.ts +4 -2
- package/src/useIsFetching.ts +2 -1
- package/src/useIsMutating.ts +2 -1
- package/build/cjs/index.js +0 -300
- package/build/cjs/index.js.map +0 -1
- package/build/esm/index.js +0 -285
- package/build/esm/index.js.map +0 -1
- package/build/umd/index.js +0 -2
- package/build/umd/index.js.map +0 -1
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('./setBatchUpdatesFn.cjs');
|
|
4
|
+
var queryCore = require('@tanstack/query-core');
|
|
5
|
+
var QueryClient = require('./QueryClient.cjs');
|
|
6
|
+
var createQuery = require('./createQuery.cjs');
|
|
7
|
+
var QueryClientProvider = require('./QueryClientProvider.cjs');
|
|
8
|
+
var useIsFetching = require('./useIsFetching.cjs');
|
|
9
|
+
var createInfiniteQuery = require('./createInfiniteQuery.cjs');
|
|
10
|
+
var createMutation = require('./createMutation.cjs');
|
|
11
|
+
var useIsMutating = require('./useIsMutating.cjs');
|
|
12
|
+
var createQueries = require('./createQueries.cjs');
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
exports.QueryClient = QueryClient.QueryClient;
|
|
17
|
+
exports.createQuery = createQuery.createQuery;
|
|
18
|
+
exports.queryOptions = createQuery.queryOptions;
|
|
19
|
+
exports.QueryClientContext = QueryClientProvider.QueryClientContext;
|
|
20
|
+
exports.QueryClientProvider = QueryClientProvider.QueryClientProvider;
|
|
21
|
+
exports.useQueryClient = QueryClientProvider.useQueryClient;
|
|
22
|
+
exports.useIsFetching = useIsFetching.useIsFetching;
|
|
23
|
+
exports.createInfiniteQuery = createInfiniteQuery.createInfiniteQuery;
|
|
24
|
+
exports.createMutation = createMutation.createMutation;
|
|
25
|
+
exports.useIsMutating = useIsMutating.useIsMutating;
|
|
26
|
+
exports.createQueries = createQueries.createQueries;
|
|
27
|
+
Object.keys(queryCore).forEach(function (k) {
|
|
28
|
+
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
get: function () { return queryCore[k]; }
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { render, screen, waitFor } from '
|
|
2
|
-
import { queryKey } from './utils';
|
|
1
|
+
import { render, screen, waitFor } from '@solidjs/testing-library';
|
|
2
|
+
import { createQueryClient, sleep, queryKey } from './utils';
|
|
3
3
|
import { QueryCache } from '@tanstack/query-core';
|
|
4
4
|
import { createQuery, QueryClientProvider, useQueryClient } from '..';
|
|
5
|
-
import { createQueryClient, sleep } from './utils';
|
|
6
5
|
import { vi } from 'vitest';
|
|
7
6
|
describe('QueryClientProvider', () => {
|
|
8
7
|
it('sets a specific cache for all queries to use', async () => {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { fireEvent, render, screen, waitFor } from '
|
|
2
|
-
import { createQueryClient, sleep } from './utils';
|
|
3
|
-
import { createEffect, createRenderEffect, createSignal, For, Index, Match, Switch, } from 'solid-js';
|
|
1
|
+
import { fireEvent, render, screen, waitFor } from '@solidjs/testing-library';
|
|
2
|
+
import { createQueryClient, sleep, Blink, queryKey, setActTimeout, } from './utils';
|
|
3
|
+
import { createEffect, createRenderEffect, createSignal, For, Index, Match, Switch, on, } from 'solid-js';
|
|
4
4
|
import { createInfiniteQuery, QueryCache, QueryClientProvider, keepPreviousData, } from '..';
|
|
5
|
-
import { Blink, queryKey, setActTimeout } from './utils';
|
|
6
5
|
import { vi } from 'vitest';
|
|
7
6
|
const pageSize = 10;
|
|
8
7
|
const fetchItems = async (page, ts, noNext, noPrev) => {
|
|
@@ -154,7 +153,16 @@ describe('useInfiniteQuery', () => {
|
|
|
154
153
|
notifyOnChangeProps: 'all',
|
|
155
154
|
}));
|
|
156
155
|
createRenderEffect(() => {
|
|
157
|
-
states.push({
|
|
156
|
+
states.push({
|
|
157
|
+
data: state.data ? JSON.parse(JSON.stringify(state.data)) : undefined,
|
|
158
|
+
hasNextPage: state.hasNextPage,
|
|
159
|
+
hasPreviousPage: state.hasPreviousPage,
|
|
160
|
+
isFetching: state.isFetching,
|
|
161
|
+
isFetchingNextPage: state.isFetchingNextPage,
|
|
162
|
+
isFetchingPreviousPage: state.isFetchingPreviousPage,
|
|
163
|
+
isSuccess: state.isSuccess,
|
|
164
|
+
isPlaceholderData: state.isPlaceholderData,
|
|
165
|
+
});
|
|
158
166
|
});
|
|
159
167
|
return (<div>
|
|
160
168
|
<button onClick={() => state.fetchNextPage()}>fetchNextPage</button>
|
|
@@ -306,9 +314,14 @@ describe('useInfiniteQuery', () => {
|
|
|
306
314
|
getNextPageParam: () => 1,
|
|
307
315
|
defaultPageParam: 0,
|
|
308
316
|
}));
|
|
309
|
-
createRenderEffect(() => {
|
|
310
|
-
states.push({
|
|
311
|
-
|
|
317
|
+
createRenderEffect(on(() => ({ ...state }), () => {
|
|
318
|
+
states.push({
|
|
319
|
+
data: state.data
|
|
320
|
+
? JSON.parse(JSON.stringify(state.data))
|
|
321
|
+
: undefined,
|
|
322
|
+
isSuccess: state.isSuccess,
|
|
323
|
+
});
|
|
324
|
+
}));
|
|
312
325
|
return (<div>
|
|
313
326
|
<button onClick={() => state.fetchNextPage()}>fetchNextPage</button>
|
|
314
327
|
<div>data: {state.data?.pages.join(',') ?? 'null'}</div>
|
|
@@ -356,7 +369,15 @@ describe('useInfiniteQuery', () => {
|
|
|
356
369
|
notifyOnChangeProps: 'all',
|
|
357
370
|
}));
|
|
358
371
|
createRenderEffect(() => {
|
|
359
|
-
states.push({
|
|
372
|
+
states.push({
|
|
373
|
+
data: state.data ? JSON.parse(JSON.stringify(state.data)) : undefined,
|
|
374
|
+
hasNextPage: state.hasNextPage,
|
|
375
|
+
hasPreviousPage: state.hasPreviousPage,
|
|
376
|
+
isFetching: state.isFetching,
|
|
377
|
+
isFetchingNextPage: state.isFetchingNextPage,
|
|
378
|
+
isFetchingPreviousPage: state.isFetchingPreviousPage,
|
|
379
|
+
isSuccess: state.isSuccess,
|
|
380
|
+
});
|
|
360
381
|
});
|
|
361
382
|
createEffect(() => {
|
|
362
383
|
const fetchPreviousPage = state.fetchPreviousPage;
|
|
@@ -424,7 +445,13 @@ describe('useInfiniteQuery', () => {
|
|
|
424
445
|
notifyOnChangeProps: 'all',
|
|
425
446
|
}));
|
|
426
447
|
createRenderEffect(() => {
|
|
427
|
-
states.push({
|
|
448
|
+
states.push({
|
|
449
|
+
data: state.data ? JSON.parse(JSON.stringify(state.data)) : undefined,
|
|
450
|
+
isFetching: state.isFetching,
|
|
451
|
+
isFetchingNextPage: state.isFetchingNextPage,
|
|
452
|
+
isRefetching: state.isRefetching,
|
|
453
|
+
isFetchingPreviousPage: state.isFetchingPreviousPage,
|
|
454
|
+
});
|
|
428
455
|
});
|
|
429
456
|
return (<div>
|
|
430
457
|
<button onClick={() => state.fetchNextPage()}>fetchNextPage</button>
|
|
@@ -524,7 +551,13 @@ describe('useInfiniteQuery', () => {
|
|
|
524
551
|
notifyOnChangeProps: 'all',
|
|
525
552
|
}));
|
|
526
553
|
createRenderEffect(() => {
|
|
527
|
-
states.push({
|
|
554
|
+
states.push({
|
|
555
|
+
hasNextPage: state.hasNextPage,
|
|
556
|
+
data: state.data ? JSON.parse(JSON.stringify(state.data)) : undefined,
|
|
557
|
+
isFetching: state.isFetching,
|
|
558
|
+
isFetchingNextPage: state.isFetchingNextPage,
|
|
559
|
+
isSuccess: state.isSuccess,
|
|
560
|
+
});
|
|
528
561
|
});
|
|
529
562
|
createEffect(() => {
|
|
530
563
|
const { refetch, fetchNextPage } = state;
|
|
@@ -804,7 +837,13 @@ describe('useInfiniteQuery', () => {
|
|
|
804
837
|
defaultPageParam: firstPage(),
|
|
805
838
|
}));
|
|
806
839
|
createRenderEffect(() => {
|
|
807
|
-
states.push({
|
|
840
|
+
states.push({
|
|
841
|
+
hasNextPage: state.hasNextPage,
|
|
842
|
+
data: state.data ? JSON.parse(JSON.stringify(state.data)) : undefined,
|
|
843
|
+
isFetching: state.isFetching,
|
|
844
|
+
isFetchingNextPage: state.isFetchingNextPage,
|
|
845
|
+
isSuccess: state.isSuccess,
|
|
846
|
+
});
|
|
808
847
|
});
|
|
809
848
|
createEffect(() => {
|
|
810
849
|
const { refetch } = state;
|
|
@@ -879,7 +918,13 @@ describe('useInfiniteQuery', () => {
|
|
|
879
918
|
notifyOnChangeProps: 'all',
|
|
880
919
|
}));
|
|
881
920
|
createRenderEffect(() => {
|
|
882
|
-
states.push({
|
|
921
|
+
states.push({
|
|
922
|
+
data: JSON.parse(JSON.stringify(state.data)),
|
|
923
|
+
hasNextPage: state.hasNextPage,
|
|
924
|
+
isFetching: state.isFetching,
|
|
925
|
+
isFetchingNextPage: state.isFetchingNextPage,
|
|
926
|
+
isSuccess: state.isSuccess,
|
|
927
|
+
});
|
|
883
928
|
});
|
|
884
929
|
createEffect(() => {
|
|
885
930
|
const { fetchNextPage } = state;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import '@testing-library/jest-dom';
|
|
2
2
|
import { createEffect, createRenderEffect, createSignal, ErrorBoundary, } from 'solid-js';
|
|
3
|
-
import { fireEvent, render, screen, waitFor } from '
|
|
3
|
+
import { fireEvent, render, screen, waitFor } from '@solidjs/testing-library';
|
|
4
4
|
import { createMutation, MutationCache, QueryCache, QueryClientProvider, } from '..';
|
|
5
5
|
import { createQueryClient, mockNavigatorOnLine, queryKey, setActTimeout, sleep, } from './utils';
|
|
6
6
|
import { vi } from 'vitest';
|
|
@@ -554,7 +554,7 @@ describe('createMutation', () => {
|
|
|
554
554
|
fireEvent.click(screen.getByText('mutate'));
|
|
555
555
|
fireEvent.click(screen.getByText('unmount'));
|
|
556
556
|
});
|
|
557
|
-
it('should be able to throw an error when
|
|
557
|
+
it('should be able to throw an error when throwOnError is set to true', async () => {
|
|
558
558
|
function Page() {
|
|
559
559
|
const mutation = createMutation(() => ({
|
|
560
560
|
mutationFn: () => {
|
|
@@ -562,7 +562,7 @@ describe('createMutation', () => {
|
|
|
562
562
|
err.stack = '';
|
|
563
563
|
return Promise.reject(err);
|
|
564
564
|
},
|
|
565
|
-
|
|
565
|
+
throwOnError: true,
|
|
566
566
|
}));
|
|
567
567
|
return (<div>
|
|
568
568
|
<button onClick={() => mutation.mutate()}>mutate</button>
|
|
@@ -580,7 +580,7 @@ describe('createMutation', () => {
|
|
|
580
580
|
expect(screen.queryByText('error')).not.toBeNull();
|
|
581
581
|
});
|
|
582
582
|
});
|
|
583
|
-
it('should be able to throw an error when
|
|
583
|
+
it('should be able to throw an error when throwOnError is a function that returns true', async () => {
|
|
584
584
|
let boundary = false;
|
|
585
585
|
function Page() {
|
|
586
586
|
const mutation = createMutation(() => ({
|
|
@@ -589,7 +589,7 @@ describe('createMutation', () => {
|
|
|
589
589
|
err.stack = '';
|
|
590
590
|
return Promise.reject(err);
|
|
591
591
|
},
|
|
592
|
-
|
|
592
|
+
throwOnError: () => {
|
|
593
593
|
boundary = !boundary;
|
|
594
594
|
return !boundary;
|
|
595
595
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { fireEvent, render, screen, waitFor } from '
|
|
2
|
-
import * as
|
|
1
|
+
import { fireEvent, render, screen, waitFor } from '@solidjs/testing-library';
|
|
2
|
+
import * as QueryCore from '@tanstack/query-core';
|
|
3
3
|
import { createRenderEffect, createSignal } from 'solid-js';
|
|
4
4
|
import { createQueries, QueriesObserver, QueryCache, QueryClientProvider, } from '..';
|
|
5
5
|
import { createQueryClient, expectType, expectTypeNotAny, queryKey, sleep, } from './utils';
|
|
@@ -117,10 +117,6 @@ describe('useQueries', () => {
|
|
|
117
117
|
expectTypeNotAny(a);
|
|
118
118
|
return a.toLowerCase();
|
|
119
119
|
},
|
|
120
|
-
onSuccess: (a) => {
|
|
121
|
-
expectType(a);
|
|
122
|
-
expectTypeNotAny(a);
|
|
123
|
-
},
|
|
124
120
|
placeholderData: 'string',
|
|
125
121
|
// @ts-expect-error (initialData: string)
|
|
126
122
|
initialData: 123,
|
|
@@ -133,14 +129,6 @@ describe('useQueries', () => {
|
|
|
133
129
|
expectTypeNotAny(a);
|
|
134
130
|
return parseInt(a);
|
|
135
131
|
},
|
|
136
|
-
onSuccess: (a) => {
|
|
137
|
-
expectType(a);
|
|
138
|
-
expectTypeNotAny(a);
|
|
139
|
-
},
|
|
140
|
-
onError: (e) => {
|
|
141
|
-
expectType(e);
|
|
142
|
-
expectTypeNotAny(e);
|
|
143
|
-
},
|
|
144
132
|
placeholderData: 'string',
|
|
145
133
|
// @ts-expect-error (initialData: string)
|
|
146
134
|
initialData: 123,
|
|
@@ -253,10 +241,6 @@ describe('useQueries', () => {
|
|
|
253
241
|
expectTypeNotAny(a);
|
|
254
242
|
return a.toLowerCase();
|
|
255
243
|
},
|
|
256
|
-
onSuccess: (a) => {
|
|
257
|
-
expectType(a);
|
|
258
|
-
expectTypeNotAny(a);
|
|
259
|
-
},
|
|
260
244
|
placeholderData: 'string',
|
|
261
245
|
// @ts-expect-error (initialData: string)
|
|
262
246
|
initialData: 123,
|
|
@@ -269,14 +253,6 @@ describe('useQueries', () => {
|
|
|
269
253
|
expectTypeNotAny(a);
|
|
270
254
|
return parseInt(a);
|
|
271
255
|
},
|
|
272
|
-
onSuccess: (a) => {
|
|
273
|
-
expectType(a);
|
|
274
|
-
expectTypeNotAny(a);
|
|
275
|
-
},
|
|
276
|
-
onError: (e) => {
|
|
277
|
-
expectType(e);
|
|
278
|
-
expectTypeNotAny(e);
|
|
279
|
-
},
|
|
280
256
|
placeholderData: 'string',
|
|
281
257
|
// @ts-expect-error (initialData: string)
|
|
282
258
|
initialData: 123,
|
|
@@ -363,59 +339,37 @@ describe('useQueries', () => {
|
|
|
363
339
|
},
|
|
364
340
|
],
|
|
365
341
|
}));
|
|
366
|
-
// select
|
|
342
|
+
// select params are "indirectly" enforced
|
|
367
343
|
createQueries(() => ({
|
|
368
344
|
queries: [
|
|
369
345
|
// unfortunately TS will not suggest the type for you
|
|
370
346
|
{
|
|
371
347
|
queryKey: key1,
|
|
372
348
|
queryFn: () => 'string',
|
|
373
|
-
// @ts-expect-error (noImplicitAny)
|
|
374
|
-
onSuccess: (a) => null,
|
|
375
|
-
// @ts-expect-error (noImplicitAny)
|
|
376
|
-
onSettled: (a) => null,
|
|
377
349
|
},
|
|
378
350
|
// however you can add a type to the callback
|
|
379
351
|
{
|
|
380
352
|
queryKey: key2,
|
|
381
353
|
queryFn: () => 'string',
|
|
382
|
-
onSuccess: (a) => {
|
|
383
|
-
expectType(a);
|
|
384
|
-
expectTypeNotAny(a);
|
|
385
|
-
},
|
|
386
|
-
onSettled: (a) => {
|
|
387
|
-
expectType(a);
|
|
388
|
-
expectTypeNotAny(a);
|
|
389
|
-
},
|
|
390
354
|
},
|
|
391
355
|
// the type you do pass is enforced
|
|
392
356
|
{
|
|
393
357
|
queryKey: key3,
|
|
394
358
|
queryFn: () => 'string',
|
|
395
|
-
// @ts-expect-error (only accepts string)
|
|
396
|
-
onSuccess: (a) => null,
|
|
397
359
|
},
|
|
398
360
|
{
|
|
399
361
|
queryKey: key4,
|
|
400
362
|
queryFn: () => 'string',
|
|
401
363
|
select: (a) => parseInt(a),
|
|
402
|
-
// @ts-expect-error (select is defined => only accepts number)
|
|
403
|
-
onSuccess: (a) => null,
|
|
404
|
-
onSettled: (a) => {
|
|
405
|
-
expectType(a);
|
|
406
|
-
expectTypeNotAny(a);
|
|
407
|
-
},
|
|
408
364
|
},
|
|
409
365
|
],
|
|
410
366
|
}));
|
|
411
367
|
// callbacks are also indirectly enforced with Array.map
|
|
412
368
|
createQueries(() => ({
|
|
413
|
-
// @ts-expect-error (onSuccess only accepts string)
|
|
414
369
|
queries: Array(50).map((_, i) => ({
|
|
415
370
|
queryKey: ['key', i],
|
|
416
371
|
queryFn: () => i + 10,
|
|
417
372
|
select: (data) => data.toString(),
|
|
418
|
-
onSuccess: (_data) => null,
|
|
419
373
|
})),
|
|
420
374
|
}));
|
|
421
375
|
createQueries(() => ({
|
|
@@ -423,7 +377,6 @@ describe('useQueries', () => {
|
|
|
423
377
|
queryKey: ['key', i],
|
|
424
378
|
queryFn: () => i + 10,
|
|
425
379
|
select: (data) => data.toString(),
|
|
426
|
-
onSuccess: (_data) => null,
|
|
427
380
|
})),
|
|
428
381
|
}));
|
|
429
382
|
// results inference works when all the handlers are defined
|
|
@@ -432,32 +385,15 @@ describe('useQueries', () => {
|
|
|
432
385
|
{
|
|
433
386
|
queryKey: key1,
|
|
434
387
|
queryFn: () => 'string',
|
|
435
|
-
// @ts-expect-error (noImplicitAny)
|
|
436
|
-
onSuccess: (a) => null,
|
|
437
|
-
// @ts-expect-error (noImplicitAny)
|
|
438
|
-
onSettled: (a) => null,
|
|
439
388
|
},
|
|
440
389
|
{
|
|
441
390
|
queryKey: key2,
|
|
442
391
|
queryFn: () => 'string',
|
|
443
|
-
onSuccess: (a) => {
|
|
444
|
-
expectType(a);
|
|
445
|
-
expectTypeNotAny(a);
|
|
446
|
-
},
|
|
447
|
-
onSettled: (a) => {
|
|
448
|
-
expectType(a);
|
|
449
|
-
expectTypeNotAny(a);
|
|
450
|
-
},
|
|
451
392
|
},
|
|
452
393
|
{
|
|
453
394
|
queryKey: key4,
|
|
454
395
|
queryFn: () => 'string',
|
|
455
396
|
select: (a) => parseInt(a),
|
|
456
|
-
onSuccess: (_a) => null,
|
|
457
|
-
onSettled: (a) => {
|
|
458
|
-
expectType(a);
|
|
459
|
-
expectTypeNotAny(a);
|
|
460
|
-
},
|
|
461
397
|
},
|
|
462
398
|
],
|
|
463
399
|
}));
|
|
@@ -470,12 +406,6 @@ describe('useQueries', () => {
|
|
|
470
406
|
{
|
|
471
407
|
queryKey: key1,
|
|
472
408
|
queryFn: () => Promise.resolve('string'),
|
|
473
|
-
onSuccess: (a) => {
|
|
474
|
-
expectType(a);
|
|
475
|
-
expectTypeNotAny(a);
|
|
476
|
-
},
|
|
477
|
-
// @ts-expect-error (refuses to accept a Promise)
|
|
478
|
-
onSettled: (a) => null,
|
|
479
409
|
},
|
|
480
410
|
],
|
|
481
411
|
}));
|
|
@@ -555,11 +485,10 @@ describe('useQueries', () => {
|
|
|
555
485
|
queries: queries.map(
|
|
556
486
|
// no need to type the mapped query
|
|
557
487
|
(query) => {
|
|
558
|
-
const { queryFn: fn, queryKey: key
|
|
488
|
+
const { queryFn: fn, queryKey: key } = query;
|
|
559
489
|
expectType(fn);
|
|
560
490
|
return {
|
|
561
491
|
queryKey: key,
|
|
562
|
-
onError: err,
|
|
563
492
|
queryFn: fn
|
|
564
493
|
? (ctx) => {
|
|
565
494
|
expectType(ctx.queryKey);
|
|
@@ -622,9 +551,9 @@ describe('useQueries', () => {
|
|
|
622
551
|
}
|
|
623
552
|
}
|
|
624
553
|
const QueriesObserverSpy = vi
|
|
625
|
-
.spyOn(
|
|
554
|
+
.spyOn(QueryCore, 'QueriesObserver')
|
|
626
555
|
.mockImplementation((fn) => {
|
|
627
|
-
return new QueriesObserverMock(fn);
|
|
556
|
+
return new QueriesObserverMock(fn, []);
|
|
628
557
|
});
|
|
629
558
|
function Queries() {
|
|
630
559
|
createQueries(() => ({
|