@tanstack/solid-query 5.0.0-alpha.3 → 5.0.0-alpha.32

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.
Files changed (94) hide show
  1. package/build/cjs/index.js +81 -37
  2. package/build/cjs/index.js.map +1 -1
  3. package/build/esm/index.js +82 -40
  4. package/build/esm/index.js.map +1 -1
  5. package/build/source/QueryClient.js +6 -0
  6. package/build/source/__tests__/QueryClientProvider.test.jsx +2 -1
  7. package/build/source/__tests__/createInfiniteQuery.test.jsx +67 -20
  8. package/build/source/__tests__/createMutation.test.jsx +23 -22
  9. package/build/source/__tests__/createQueries.test.jsx +4 -91
  10. package/build/source/__tests__/createQuery.test.jsx +68 -277
  11. package/build/source/__tests__/createQuery.types.test.jsx +19 -1
  12. package/build/source/__tests__/suspense.test.jsx +9 -70
  13. package/build/source/__tests__/useIsFetching.test.jsx +2 -4
  14. package/build/source/__tests__/useIsMutating.test.jsx +25 -28
  15. package/build/source/__tests__/utils.jsx +4 -3
  16. package/build/source/createBaseQuery.js +48 -21
  17. package/build/source/createMutation.js +1 -1
  18. package/build/source/createQueries.js +5 -5
  19. package/build/source/createQuery.js +3 -0
  20. package/build/source/index.js +2 -1
  21. package/build/source/useIsFetching.js +5 -5
  22. package/build/source/useIsMutating.js +5 -5
  23. package/build/types/QueryClient.d.ts +30 -0
  24. package/build/types/QueryClient.d.ts.map +1 -0
  25. package/build/types/QueryClientProvider.d.ts +2 -1
  26. package/build/types/QueryClientProvider.d.ts.map +1 -0
  27. package/build/types/__tests__/QueryClientProvider.test.d.ts +1 -0
  28. package/build/types/__tests__/QueryClientProvider.test.d.ts.map +1 -0
  29. package/build/types/__tests__/createInfiniteQuery.test.d.ts +1 -0
  30. package/build/types/__tests__/createInfiniteQuery.test.d.ts.map +1 -0
  31. package/build/types/__tests__/createMutation.test.d.ts +1 -0
  32. package/build/types/__tests__/createMutation.test.d.ts.map +1 -0
  33. package/build/types/__tests__/createQueries.test.d.ts +1 -0
  34. package/build/types/__tests__/createQueries.test.d.ts.map +1 -0
  35. package/build/types/__tests__/createQuery.test.d.ts +1 -0
  36. package/build/types/__tests__/createQuery.test.d.ts.map +1 -0
  37. package/build/types/__tests__/createQuery.types.test.d.ts +1 -0
  38. package/build/types/__tests__/createQuery.types.test.d.ts.map +1 -0
  39. package/build/types/__tests__/suspense.test.d.ts +1 -0
  40. package/build/types/__tests__/suspense.test.d.ts.map +1 -0
  41. package/build/types/__tests__/transition.test.d.ts +1 -0
  42. package/build/types/__tests__/transition.test.d.ts.map +1 -0
  43. package/build/types/__tests__/useIsFetching.test.d.ts +1 -0
  44. package/build/types/__tests__/useIsFetching.test.d.ts.map +1 -0
  45. package/build/types/__tests__/useIsMutating.test.d.ts +1 -0
  46. package/build/types/__tests__/useIsMutating.test.d.ts.map +1 -0
  47. package/build/types/__tests__/utils.d.ts +4 -4
  48. package/build/types/__tests__/utils.d.ts.map +1 -0
  49. package/build/types/createBaseQuery.d.ts +4 -2
  50. package/build/types/createBaseQuery.d.ts.map +1 -0
  51. package/build/types/createInfiniteQuery.d.ts +5 -2
  52. package/build/types/createInfiniteQuery.d.ts.map +1 -0
  53. package/build/types/createMutation.d.ts +5 -2
  54. package/build/types/createMutation.d.ts.map +1 -0
  55. package/build/types/createQueries.d.ts +6 -4
  56. package/build/types/createQueries.d.ts.map +1 -0
  57. package/build/types/createQuery.d.ts +5 -1
  58. package/build/types/createQuery.d.ts.map +1 -0
  59. package/build/types/index.d.ts +4 -1
  60. package/build/types/index.d.ts.map +1 -0
  61. package/build/types/setBatchUpdatesFn.d.ts +1 -0
  62. package/build/types/setBatchUpdatesFn.d.ts.map +1 -0
  63. package/build/types/types.d.ts +3 -1
  64. package/build/types/types.d.ts.map +1 -0
  65. package/build/types/useIsFetching.d.ts +4 -7
  66. package/build/types/useIsFetching.d.ts.map +1 -0
  67. package/build/types/useIsMutating.d.ts +4 -7
  68. package/build/types/useIsMutating.d.ts.map +1 -0
  69. package/build/types/utils.d.ts +1 -0
  70. package/build/types/utils.d.ts.map +1 -0
  71. package/build/umd/index.js +1 -1
  72. package/build/umd/index.js.map +1 -1
  73. package/package.json +5 -5
  74. package/src/QueryClient.ts +84 -0
  75. package/src/QueryClientProvider.tsx +1 -1
  76. package/src/__tests__/QueryClientProvider.test.tsx +2 -1
  77. package/src/__tests__/createInfiniteQuery.test.tsx +95 -34
  78. package/src/__tests__/createMutation.test.tsx +23 -22
  79. package/src/__tests__/createQueries.test.tsx +4 -97
  80. package/src/__tests__/createQuery.test.tsx +84 -350
  81. package/src/__tests__/createQuery.types.test.tsx +21 -1
  82. package/src/__tests__/suspense.test.tsx +9 -91
  83. package/src/__tests__/useIsFetching.test.tsx +2 -4
  84. package/src/__tests__/useIsMutating.test.tsx +32 -40
  85. package/src/__tests__/utils.tsx +4 -3
  86. package/src/createBaseQuery.ts +73 -27
  87. package/src/createInfiniteQuery.ts +3 -2
  88. package/src/createMutation.ts +5 -3
  89. package/src/createQueries.ts +9 -8
  90. package/src/createQuery.ts +26 -2
  91. package/src/index.ts +8 -1
  92. package/src/types.ts +4 -2
  93. package/src/useIsFetching.ts +10 -13
  94. package/src/useIsMutating.ts +10 -11
@@ -3,6 +3,7 @@ import * as QueriesObserverModule from '../../../query-core/src/queriesObserver'
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';
6
+ import { vi } from 'vitest';
6
7
  describe('useQueries', () => {
7
8
  const queryCache = new QueryCache();
8
9
  const queryClient = createQueryClient({ queryCache });
@@ -116,10 +117,6 @@ describe('useQueries', () => {
116
117
  expectTypeNotAny(a);
117
118
  return a.toLowerCase();
118
119
  },
119
- onSuccess: (a) => {
120
- expectType(a);
121
- expectTypeNotAny(a);
122
- },
123
120
  placeholderData: 'string',
124
121
  // @ts-expect-error (initialData: string)
125
122
  initialData: 123,
@@ -132,14 +129,6 @@ describe('useQueries', () => {
132
129
  expectTypeNotAny(a);
133
130
  return parseInt(a);
134
131
  },
135
- onSuccess: (a) => {
136
- expectType(a);
137
- expectTypeNotAny(a);
138
- },
139
- onError: (e) => {
140
- expectType(e);
141
- expectTypeNotAny(e);
142
- },
143
132
  placeholderData: 'string',
144
133
  // @ts-expect-error (initialData: string)
145
134
  initialData: 123,
@@ -252,10 +241,6 @@ describe('useQueries', () => {
252
241
  expectTypeNotAny(a);
253
242
  return a.toLowerCase();
254
243
  },
255
- onSuccess: (a) => {
256
- expectType(a);
257
- expectTypeNotAny(a);
258
- },
259
244
  placeholderData: 'string',
260
245
  // @ts-expect-error (initialData: string)
261
246
  initialData: 123,
@@ -268,14 +253,6 @@ describe('useQueries', () => {
268
253
  expectTypeNotAny(a);
269
254
  return parseInt(a);
270
255
  },
271
- onSuccess: (a) => {
272
- expectType(a);
273
- expectTypeNotAny(a);
274
- },
275
- onError: (e) => {
276
- expectType(e);
277
- expectTypeNotAny(e);
278
- },
279
256
  placeholderData: 'string',
280
257
  // @ts-expect-error (initialData: string)
281
258
  initialData: 123,
@@ -362,59 +339,37 @@ describe('useQueries', () => {
362
339
  },
363
340
  ],
364
341
  }));
365
- // select / onSuccess / onSettled params are "indirectly" enforced
342
+ // select params are "indirectly" enforced
366
343
  createQueries(() => ({
367
344
  queries: [
368
345
  // unfortunately TS will not suggest the type for you
369
346
  {
370
347
  queryKey: key1,
371
348
  queryFn: () => 'string',
372
- // @ts-expect-error (noImplicitAny)
373
- onSuccess: (a) => null,
374
- // @ts-expect-error (noImplicitAny)
375
- onSettled: (a) => null,
376
349
  },
377
350
  // however you can add a type to the callback
378
351
  {
379
352
  queryKey: key2,
380
353
  queryFn: () => 'string',
381
- onSuccess: (a) => {
382
- expectType(a);
383
- expectTypeNotAny(a);
384
- },
385
- onSettled: (a) => {
386
- expectType(a);
387
- expectTypeNotAny(a);
388
- },
389
354
  },
390
355
  // the type you do pass is enforced
391
356
  {
392
357
  queryKey: key3,
393
358
  queryFn: () => 'string',
394
- // @ts-expect-error (only accepts string)
395
- onSuccess: (a) => null,
396
359
  },
397
360
  {
398
361
  queryKey: key4,
399
362
  queryFn: () => 'string',
400
363
  select: (a) => parseInt(a),
401
- // @ts-expect-error (select is defined => only accepts number)
402
- onSuccess: (a) => null,
403
- onSettled: (a) => {
404
- expectType(a);
405
- expectTypeNotAny(a);
406
- },
407
364
  },
408
365
  ],
409
366
  }));
410
367
  // callbacks are also indirectly enforced with Array.map
411
368
  createQueries(() => ({
412
- // @ts-expect-error (onSuccess only accepts string)
413
369
  queries: Array(50).map((_, i) => ({
414
370
  queryKey: ['key', i],
415
371
  queryFn: () => i + 10,
416
372
  select: (data) => data.toString(),
417
- onSuccess: (_data) => null,
418
373
  })),
419
374
  }));
420
375
  createQueries(() => ({
@@ -422,7 +377,6 @@ describe('useQueries', () => {
422
377
  queryKey: ['key', i],
423
378
  queryFn: () => i + 10,
424
379
  select: (data) => data.toString(),
425
- onSuccess: (_data) => null,
426
380
  })),
427
381
  }));
428
382
  // results inference works when all the handlers are defined
@@ -431,32 +385,15 @@ describe('useQueries', () => {
431
385
  {
432
386
  queryKey: key1,
433
387
  queryFn: () => 'string',
434
- // @ts-expect-error (noImplicitAny)
435
- onSuccess: (a) => null,
436
- // @ts-expect-error (noImplicitAny)
437
- onSettled: (a) => null,
438
388
  },
439
389
  {
440
390
  queryKey: key2,
441
391
  queryFn: () => 'string',
442
- onSuccess: (a) => {
443
- expectType(a);
444
- expectTypeNotAny(a);
445
- },
446
- onSettled: (a) => {
447
- expectType(a);
448
- expectTypeNotAny(a);
449
- },
450
392
  },
451
393
  {
452
394
  queryKey: key4,
453
395
  queryFn: () => 'string',
454
396
  select: (a) => parseInt(a),
455
- onSuccess: (_a) => null,
456
- onSettled: (a) => {
457
- expectType(a);
458
- expectTypeNotAny(a);
459
- },
460
397
  },
461
398
  ],
462
399
  }));
@@ -469,12 +406,6 @@ describe('useQueries', () => {
469
406
  {
470
407
  queryKey: key1,
471
408
  queryFn: () => Promise.resolve('string'),
472
- onSuccess: (a) => {
473
- expectType(a);
474
- expectTypeNotAny(a);
475
- },
476
- // @ts-expect-error (refuses to accept a Promise)
477
- onSettled: (a) => null,
478
409
  },
479
410
  ],
480
411
  }));
@@ -554,11 +485,10 @@ describe('useQueries', () => {
554
485
  queries: queries.map(
555
486
  // no need to type the mapped query
556
487
  (query) => {
557
- const { queryFn: fn, queryKey: key, onError: err } = query;
488
+ const { queryFn: fn, queryKey: key } = query;
558
489
  expectType(fn);
559
490
  return {
560
491
  queryKey: key,
561
- onError: err,
562
492
  queryFn: fn
563
493
  ? (ctx) => {
564
494
  expectType(ctx.queryKey);
@@ -620,7 +550,7 @@ describe('useQueries', () => {
620
550
  return () => void 0;
621
551
  }
622
552
  }
623
- const QueriesObserverSpy = jest
553
+ const QueriesObserverSpy = vi
624
554
  .spyOn(QueriesObserverModule, 'QueriesObserver')
625
555
  .mockImplementation((fn) => {
626
556
  return new QueriesObserverMock(fn);
@@ -657,21 +587,4 @@ describe('useQueries', () => {
657
587
  await sleep(20);
658
588
  QueriesObserverSpy.mockRestore();
659
589
  });
660
- it('should use provided custom queryClient', async () => {
661
- const key = queryKey();
662
- const queryFn = () => {
663
- return Promise.resolve('custom client');
664
- };
665
- function Page() {
666
- const state = createQueries(() => ({
667
- queries: [{ queryKey: key, queryFn }],
668
- queryClient,
669
- }));
670
- return (<div>
671
- <h1>Status: {state[0].data}</h1>
672
- </div>);
673
- }
674
- render(() => <Page />);
675
- await waitFor(() => screen.getByText('Status: custom client'));
676
- });
677
590
  });