@tanstack/query-core 4.1.3 → 4.3.0-beta.0

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/{types/packages/query-core/src → lib}/focusManager.d.ts +0 -0
  2. package/build/{types/packages/query-core/src → lib}/hydration.d.ts +0 -0
  3. package/build/{types/packages/query-core/src → lib}/index.d.ts +2 -2
  4. package/build/lib/index.js +3115 -0
  5. package/build/lib/index.js.map +1 -0
  6. package/build/{esm/index.js → lib/index.mjs} +3 -1
  7. package/build/lib/index.mjs.map +1 -0
  8. package/build/{types/packages/query-core/src → lib}/infiniteQueryBehavior.d.ts +0 -0
  9. package/build/{types/packages/query-core/src → lib}/infiniteQueryObserver.d.ts +0 -0
  10. package/build/{types/packages/query-core/src → lib}/logger.d.ts +0 -0
  11. package/build/{types/packages/query-core/src → lib}/logger.native.d.ts +0 -0
  12. package/build/{types/packages/query-core/src → lib}/mutation.d.ts +0 -0
  13. package/build/{types/packages/query-core/src → lib}/mutationCache.d.ts +0 -0
  14. package/build/{types/packages/query-core/src → lib}/mutationObserver.d.ts +0 -0
  15. package/build/{types/packages/query-core/src → lib}/notifyManager.d.ts +0 -0
  16. package/build/{types/packages/query-core/src → lib}/onlineManager.d.ts +0 -0
  17. package/build/{types/packages/query-core/src → lib}/queriesObserver.d.ts +0 -0
  18. package/build/{types/packages/query-core/src → lib}/query.d.ts +0 -0
  19. package/build/{types/packages/query-core/src → lib}/queryCache.d.ts +0 -0
  20. package/build/{types/packages/query-core/src → lib}/queryClient.d.ts +0 -0
  21. package/build/{types/packages/query-core/src → lib}/queryObserver.d.ts +0 -0
  22. package/build/{types/packages/query-core/src → lib}/removable.d.ts +0 -0
  23. package/build/{types/packages/query-core/src → lib}/retryer.d.ts +0 -0
  24. package/build/{types/packages/query-core/src → lib}/subscribable.d.ts +0 -0
  25. package/build/{types/packages/query-core/src → lib}/types.d.ts +2 -1
  26. package/build/{types/packages/query-core/src → lib}/utils.d.ts +0 -0
  27. package/build/umd/index.development.js +2 -0
  28. package/build/umd/index.development.js.map +1 -1
  29. package/build/umd/index.production.js +1 -1
  30. package/build/umd/index.production.js.map +1 -1
  31. package/package.json +16 -8
  32. package/src/index.ts +2 -2
  33. package/src/tests/queryClient.test.tsx +33 -0
  34. package/src/types.ts +4 -1
  35. package/src/utils.ts +2 -0
  36. package/build/cjs/focusManager.js +0 -101
  37. package/build/cjs/focusManager.js.map +0 -1
  38. package/build/cjs/hydration.js +0 -112
  39. package/build/cjs/hydration.js.map +0 -1
  40. package/build/cjs/index.js +0 -51
  41. package/build/cjs/index.js.map +0 -1
  42. package/build/cjs/infiniteQueryBehavior.js +0 -160
  43. package/build/cjs/infiniteQueryBehavior.js.map +0 -1
  44. package/build/cjs/infiniteQueryObserver.js +0 -92
  45. package/build/cjs/infiniteQueryObserver.js.map +0 -1
  46. package/build/cjs/logger.js +0 -18
  47. package/build/cjs/logger.js.map +0 -1
  48. package/build/cjs/mutation.js +0 -258
  49. package/build/cjs/mutation.js.map +0 -1
  50. package/build/cjs/mutationCache.js +0 -99
  51. package/build/cjs/mutationCache.js.map +0 -1
  52. package/build/cjs/mutationObserver.js +0 -140
  53. package/build/cjs/mutationObserver.js.map +0 -1
  54. package/build/cjs/notifyManager.js +0 -114
  55. package/build/cjs/notifyManager.js.map +0 -1
  56. package/build/cjs/onlineManager.js +0 -100
  57. package/build/cjs/onlineManager.js.map +0 -1
  58. package/build/cjs/queriesObserver.js +0 -170
  59. package/build/cjs/queriesObserver.js.map +0 -1
  60. package/build/cjs/query.js +0 -474
  61. package/build/cjs/query.js.map +0 -1
  62. package/build/cjs/queryCache.js +0 -140
  63. package/build/cjs/queryCache.js.map +0 -1
  64. package/build/cjs/queryClient.js +0 -353
  65. package/build/cjs/queryClient.js.map +0 -1
  66. package/build/cjs/queryObserver.js +0 -529
  67. package/build/cjs/queryObserver.js.map +0 -1
  68. package/build/cjs/removable.js +0 -47
  69. package/build/cjs/removable.js.map +0 -1
  70. package/build/cjs/retryer.js +0 -177
  71. package/build/cjs/retryer.js.map +0 -1
  72. package/build/cjs/subscribable.js +0 -43
  73. package/build/cjs/subscribable.js.map +0 -1
  74. package/build/cjs/utils.js +0 -356
  75. package/build/cjs/utils.js.map +0 -1
  76. package/build/esm/index.js.map +0 -1
  77. package/build/stats-html.html +0 -2689
  78. package/build/stats.json +0 -811
  79. package/build/types/packages/query-core/src/tests/focusManager.test.d.ts +0 -1
  80. package/build/types/packages/query-core/src/tests/hydration.test.d.ts +0 -1
  81. package/build/types/packages/query-core/src/tests/infiniteQueryBehavior.test.d.ts +0 -1
  82. package/build/types/packages/query-core/src/tests/infiniteQueryObserver.test.d.ts +0 -1
  83. package/build/types/packages/query-core/src/tests/mutationCache.test.d.ts +0 -1
  84. package/build/types/packages/query-core/src/tests/mutationObserver.test.d.ts +0 -1
  85. package/build/types/packages/query-core/src/tests/mutations.test.d.ts +0 -1
  86. package/build/types/packages/query-core/src/tests/notifyManager.test.d.ts +0 -1
  87. package/build/types/packages/query-core/src/tests/onlineManager.test.d.ts +0 -1
  88. package/build/types/packages/query-core/src/tests/queriesObserver.test.d.ts +0 -1
  89. package/build/types/packages/query-core/src/tests/query.test.d.ts +0 -1
  90. package/build/types/packages/query-core/src/tests/queryCache.test.d.ts +0 -1
  91. package/build/types/packages/query-core/src/tests/queryClient.test.d.ts +0 -1
  92. package/build/types/packages/query-core/src/tests/queryObserver.test.d.ts +0 -1
  93. package/build/types/packages/query-core/src/tests/utils.test.d.ts +0 -1
  94. package/build/types/tests/utils.d.ts +0 -24
@@ -45,9 +45,10 @@ export interface QueryOptions<TQueryFnData = unknown, TError = unknown, TData =
45
45
  behavior?: QueryBehavior<TQueryFnData, TError, TData>;
46
46
  /**
47
47
  * Set this to `false` to disable structural sharing between query results.
48
+ * Set this to a function which accepts the old and new data and returns resolved data of the same type to implement custom structural sharing logic.
48
49
  * Defaults to `true`.
49
50
  */
50
- structuralSharing?: boolean;
51
+ structuralSharing?: boolean | ((oldData: TData | undefined, newData: TData) => TData);
51
52
  /**
52
53
  * This function can be set to automatically get the previous cursor for infinite queries.
53
54
  * The result will also be used to determine the value of `hasPreviousPage`.
@@ -347,6 +347,8 @@
347
347
  // Use prev data if an isDataEqual function is defined and returns `true`
348
348
  if (options.isDataEqual != null && options.isDataEqual(prevData, data)) {
349
349
  return prevData;
350
+ } else if (typeof options.structuralSharing === 'function') {
351
+ return options.structuralSharing(prevData, data);
350
352
  } else if (options.structuralSharing !== false) {
351
353
  // Structurally share data between prev and new data if needed
352
354
  return replaceEqualDeep(prevData, data);