@tanstack/query-core 5.0.0-alpha.50 → 5.0.0-alpha.52

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 (79) hide show
  1. package/build/lib/{focusManager.mjs → focusManager.cjs} +9 -6
  2. package/build/lib/{focusManager.mjs.map → focusManager.cjs.map} +1 -1
  3. package/build/lib/focusManager.js +5 -8
  4. package/build/lib/focusManager.js.map +1 -1
  5. package/build/lib/{hydration.mjs → hydration.cjs} +7 -2
  6. package/build/lib/{hydration.mjs.map → hydration.cjs.map} +1 -1
  7. package/build/lib/hydration.js +1 -6
  8. package/build/lib/hydration.js.map +1 -1
  9. package/build/lib/index.cjs +40 -0
  10. package/build/lib/index.cjs.map +1 -0
  11. package/build/lib/index.js +13 -39
  12. package/build/lib/index.js.map +1 -1
  13. package/build/lib/{infiniteQueryBehavior.mjs → infiniteQueryBehavior.cjs} +8 -4
  14. package/build/lib/{infiniteQueryBehavior.mjs.map → infiniteQueryBehavior.cjs.map} +1 -1
  15. package/build/lib/infiniteQueryBehavior.js +3 -7
  16. package/build/lib/infiniteQueryBehavior.js.map +1 -1
  17. package/build/lib/{infiniteQueryObserver.mjs → infiniteQueryObserver.cjs} +11 -9
  18. package/build/lib/{infiniteQueryObserver.mjs.map → infiniteQueryObserver.cjs.map} +1 -1
  19. package/build/lib/infiniteQueryObserver.js +8 -10
  20. package/build/lib/infiniteQueryObserver.js.map +1 -1
  21. package/build/lib/{mutation.mjs → mutation.cjs} +12 -9
  22. package/build/lib/{mutation.mjs.map → mutation.cjs.map} +1 -1
  23. package/build/lib/mutation.js +8 -11
  24. package/build/lib/mutation.js.map +1 -1
  25. package/build/lib/{mutationCache.mjs → mutationCache.cjs} +17 -15
  26. package/build/lib/{mutationCache.mjs.map → mutationCache.cjs.map} +1 -1
  27. package/build/lib/mutationCache.js +14 -16
  28. package/build/lib/mutationCache.js.map +1 -1
  29. package/build/lib/{mutationObserver.mjs → mutationObserver.cjs} +12 -10
  30. package/build/lib/{mutationObserver.mjs.map → mutationObserver.cjs.map} +1 -1
  31. package/build/lib/mutationObserver.js +9 -11
  32. package/build/lib/mutationObserver.js.map +1 -1
  33. package/build/lib/{notifyManager.mjs → notifyManager.cjs} +8 -5
  34. package/build/lib/{notifyManager.mjs.map → notifyManager.cjs.map} +1 -1
  35. package/build/lib/notifyManager.js +4 -7
  36. package/build/lib/notifyManager.js.map +1 -1
  37. package/build/lib/{onlineManager.mjs → onlineManager.cjs} +9 -6
  38. package/build/lib/{onlineManager.mjs.map → onlineManager.cjs.map} +1 -1
  39. package/build/lib/onlineManager.js +5 -8
  40. package/build/lib/onlineManager.js.map +1 -1
  41. package/build/lib/{queriesObserver.mjs → queriesObserver.cjs} +13 -11
  42. package/build/lib/{queriesObserver.mjs.map → queriesObserver.cjs.map} +1 -1
  43. package/build/lib/queriesObserver.js +10 -12
  44. package/build/lib/queriesObserver.js.map +1 -1
  45. package/build/lib/{query.mjs → query.cjs} +18 -16
  46. package/build/lib/{query.mjs.map → query.cjs.map} +1 -1
  47. package/build/lib/query.js +15 -17
  48. package/build/lib/query.js.map +1 -1
  49. package/build/lib/{queryCache.mjs → queryCache.cjs} +21 -19
  50. package/build/lib/{queryCache.mjs.map → queryCache.cjs.map} +1 -1
  51. package/build/lib/queryCache.js +18 -20
  52. package/build/lib/queryCache.js.map +1 -1
  53. package/build/lib/{queryClient.mjs → queryClient.cjs} +35 -33
  54. package/build/lib/{queryClient.mjs.map → queryClient.cjs.map} +1 -1
  55. package/build/lib/queryClient.js +32 -34
  56. package/build/lib/queryClient.js.map +1 -1
  57. package/build/lib/{queryObserver.mjs → queryObserver.cjs} +21 -19
  58. package/build/lib/{queryObserver.mjs.map → queryObserver.cjs.map} +1 -1
  59. package/build/lib/queryObserver.js +18 -20
  60. package/build/lib/queryObserver.js.map +1 -1
  61. package/build/lib/{removable.mjs → removable.cjs} +7 -5
  62. package/build/lib/{removable.mjs.map → removable.cjs.map} +1 -1
  63. package/build/lib/removable.js +4 -6
  64. package/build/lib/removable.js.map +1 -1
  65. package/build/lib/{retryer.mjs → retryer.cjs} +13 -8
  66. package/build/lib/{retryer.mjs.map → retryer.cjs.map} +1 -1
  67. package/build/lib/retryer.js +7 -12
  68. package/build/lib/retryer.js.map +1 -1
  69. package/build/lib/{subscribable.mjs → subscribable.cjs} +4 -2
  70. package/build/lib/{subscribable.mjs.map → subscribable.cjs.map} +1 -1
  71. package/build/lib/subscribable.js +1 -3
  72. package/build/lib/subscribable.js.map +1 -1
  73. package/build/lib/{utils.mjs → utils.cjs} +23 -2
  74. package/build/lib/{utils.mjs.map → utils.cjs.map} +1 -1
  75. package/build/lib/utils.js +1 -22
  76. package/build/lib/utils.js.map +1 -1
  77. package/package.json +8 -7
  78. package/build/lib/index.mjs +0 -14
  79. package/build/lib/index.mjs.map +0 -1
@@ -1,9 +1,7 @@
1
- 'use strict';
2
-
3
- var notifyManager = require('./notifyManager.js');
4
- var queryObserver = require('./queryObserver.js');
5
- var subscribable = require('./subscribable.js');
6
- var utils = require('./utils.js');
1
+ import { notifyManager } from './notifyManager.js';
2
+ import { QueryObserver } from './queryObserver.js';
3
+ import { Subscribable } from './subscribable.js';
4
+ import { replaceEqualDeep } from './utils.js';
7
5
 
8
6
  function difference(array1, array2) {
9
7
  return array1.filter(x => array2.indexOf(x) === -1);
@@ -13,7 +11,7 @@ function replaceAt(array, index, value) {
13
11
  copy[index] = value;
14
12
  return copy;
15
13
  }
16
- class QueriesObserver extends subscribable.Subscribable {
14
+ class QueriesObserver extends Subscribable {
17
15
  #client;
18
16
  #result;
19
17
  #queries;
@@ -55,7 +53,7 @@ class QueriesObserver extends subscribable.Subscribable {
55
53
  setQueries(queries, options, notifyOptions) {
56
54
  this.#queries = queries;
57
55
  this.#options = options;
58
- notifyManager.notifyManager.batch(() => {
56
+ notifyManager.batch(() => {
59
57
  const prevObservers = this.#observers;
60
58
  const newObserverMatches = this.#findMatchingObservers(this.#queries);
61
59
 
@@ -107,7 +105,7 @@ class QueriesObserver extends subscribable.Subscribable {
107
105
  #combineResult(input) {
108
106
  const combine = this.#options?.combine;
109
107
  if (combine) {
110
- return utils.replaceEqualDeep(this.#combinedResult, combine(input));
108
+ return replaceEqualDeep(this.#combinedResult, combine(input));
111
109
  }
112
110
  return input;
113
111
  }
@@ -130,7 +128,7 @@ class QueriesObserver extends subscribable.Subscribable {
130
128
  const getObserver = options => {
131
129
  const defaultedOptions = this.#client.defaultQueryOptions(options);
132
130
  const currentObserver = this.#observers.find(o => o.options.queryHash === defaultedOptions.queryHash);
133
- return currentObserver ?? new queryObserver.QueryObserver(this.#client, defaultedOptions);
131
+ return currentObserver ?? new QueryObserver(this.#client, defaultedOptions);
134
132
  };
135
133
  const newOrReusedObservers = unmatchedQueries.map(options => {
136
134
  return {
@@ -149,7 +147,7 @@ class QueriesObserver extends subscribable.Subscribable {
149
147
  }
150
148
  }
151
149
  #notify() {
152
- notifyManager.notifyManager.batch(() => {
150
+ notifyManager.batch(() => {
153
151
  this.listeners.forEach(listener => {
154
152
  listener(this.#result);
155
153
  });
@@ -157,5 +155,5 @@ class QueriesObserver extends subscribable.Subscribable {
157
155
  }
158
156
  }
159
157
 
160
- exports.QueriesObserver = QueriesObserver;
158
+ export { QueriesObserver };
161
159
  //# sourceMappingURL=queriesObserver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queriesObserver.js","sources":["../../src/queriesObserver.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport type {\n QueryObserverOptions,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions } from './queryObserver'\nimport { QueryObserver } from './queryObserver'\nimport { Subscribable } from './subscribable'\nimport { replaceEqualDeep } from './utils'\n\nfunction difference<T>(array1: T[], array2: T[]): T[] {\n return array1.filter((x) => array2.indexOf(x) === -1)\n}\n\nfunction replaceAt<T>(array: T[], index: number, value: T): T[] {\n const copy = array.slice(0)\n copy[index] = value\n return copy\n}\n\ntype QueriesObserverListener = (result: QueryObserverResult[]) => void\n\nexport interface QueriesObserverOptions<\n TCombinedResult = QueryObserverResult[],\n> {\n combine?: (result: QueryObserverResult[]) => TCombinedResult\n}\n\nexport class QueriesObserver<\n TCombinedResult = QueryObserverResult[],\n> extends Subscribable<QueriesObserverListener> {\n #client: QueryClient\n #result!: QueryObserverResult[]\n #queries: QueryObserverOptions[]\n #observers: QueryObserver[]\n #options?: QueriesObserverOptions<TCombinedResult>\n #combinedResult!: TCombinedResult\n\n constructor(\n client: QueryClient,\n queries: QueryObserverOptions[],\n options?: QueriesObserverOptions<TCombinedResult>,\n ) {\n super()\n\n this.#client = client\n this.#queries = []\n this.#observers = []\n\n this.#setResult([])\n this.setQueries(queries, options)\n }\n\n #setResult(value: QueryObserverResult[]) {\n this.#result = value\n this.#combinedResult = this.#combineResult(value)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.size) {\n this.destroy()\n }\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.#observers.forEach((observer) => {\n observer.destroy()\n })\n }\n\n setQueries(\n queries: QueryObserverOptions[],\n options?: QueriesObserverOptions<TCombinedResult>,\n notifyOptions?: NotifyOptions,\n ): void {\n this.#queries = queries\n this.#options = options\n\n notifyManager.batch(() => {\n const prevObservers = this.#observers\n\n const newObserverMatches = this.#findMatchingObservers(this.#queries)\n\n // set options for the new observers to notify of changes\n newObserverMatches.forEach((match) =>\n match.observer.setOptions(match.defaultedQueryOptions, notifyOptions),\n )\n\n const newObservers = newObserverMatches.map((match) => match.observer)\n const newResult = newObservers.map((observer) =>\n observer.getCurrentResult(),\n )\n\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index],\n )\n if (prevObservers.length === newObservers.length && !hasIndexChange) {\n return\n }\n\n this.#observers = newObservers\n this.#setResult(newResult)\n\n if (!this.hasListeners()) {\n return\n }\n\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy()\n })\n\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n\n this.#notify()\n })\n }\n\n getCurrentResult(): TCombinedResult {\n return this.#combinedResult\n }\n\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery())\n }\n\n getObservers() {\n return this.#observers\n }\n\n getOptimisticResult(\n queries: QueryObserverOptions[],\n ): [\n rawResult: QueryObserverResult[],\n combineResult: (r?: QueryObserverResult[]) => TCombinedResult,\n trackResult: () => QueryObserverResult[],\n ] {\n const matches = this.#findMatchingObservers(queries)\n const result = matches.map((match) =>\n match.observer.getOptimisticResult(match.defaultedQueryOptions),\n )\n\n return [\n result,\n (r?: QueryObserverResult[]) => {\n return this.#combineResult(r ?? result)\n },\n () => {\n return matches.map((match, index) => {\n const observerResult = result[index]!\n return !match.defaultedQueryOptions.notifyOnChangeProps\n ? match.observer.trackResult(observerResult)\n : observerResult\n })\n },\n ]\n }\n\n #combineResult(input: QueryObserverResult[]): TCombinedResult {\n const combine = this.#options?.combine\n if (combine) {\n return replaceEqualDeep(this.#combinedResult, combine(input))\n }\n return input as any\n }\n\n #findMatchingObservers(\n queries: QueryObserverOptions[],\n ): QueryObserverMatch[] {\n const prevObservers = this.#observers\n const prevObserversMap = new Map(\n prevObservers.map((observer) => [observer.options.queryHash, observer]),\n )\n\n const defaultedQueryOptions = queries.map((options) =>\n this.#client.defaultQueryOptions(options),\n )\n\n const matchingObservers: QueryObserverMatch[] =\n defaultedQueryOptions.flatMap((defaultedOptions) => {\n const match = prevObserversMap.get(defaultedOptions.queryHash)\n if (match != null) {\n return [{ defaultedQueryOptions: defaultedOptions, observer: match }]\n }\n return []\n })\n\n const matchedQueryHashes = new Set(\n matchingObservers.map((match) => match.defaultedQueryOptions.queryHash),\n )\n const unmatchedQueries = defaultedQueryOptions.filter(\n (defaultedOptions) => !matchedQueryHashes.has(defaultedOptions.queryHash),\n )\n\n const getObserver = (options: QueryObserverOptions): QueryObserver => {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n const currentObserver = this.#observers.find(\n (o) => o.options.queryHash === defaultedOptions.queryHash,\n )\n return (\n currentObserver ?? new QueryObserver(this.#client, defaultedOptions)\n )\n }\n\n const newOrReusedObservers: QueryObserverMatch[] = unmatchedQueries.map(\n (options) => {\n return {\n defaultedQueryOptions: options,\n observer: getObserver(options),\n }\n },\n )\n\n const sortMatchesByOrderOfQueries = (\n a: QueryObserverMatch,\n b: QueryObserverMatch,\n ): number =>\n defaultedQueryOptions.indexOf(a.defaultedQueryOptions) -\n defaultedQueryOptions.indexOf(b.defaultedQueryOptions)\n\n return matchingObservers\n .concat(newOrReusedObservers)\n .sort(sortMatchesByOrderOfQueries)\n }\n\n #onUpdate(observer: QueryObserver, result: QueryObserverResult): void {\n const index = this.#observers.indexOf(observer)\n if (index !== -1) {\n this.#setResult(replaceAt(this.#result, index, result))\n this.#notify()\n }\n }\n\n #notify(): void {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result)\n })\n })\n }\n}\n\ntype QueryObserverMatch = {\n defaultedQueryOptions: DefaultedQueryObserverOptions\n observer: QueryObserver\n}\n"],"names":["difference","array1","array2","filter","x","indexOf","replaceAt","array","index","value","copy","slice","QueriesObserver","Subscribable","constructor","client","queries","options","setQueries","#setResult","onSubscribe","listeners","size","forEach","observer","subscribe","result","onUnsubscribe","destroy","Set","notifyOptions","notifyManager","batch","prevObservers","newObserverMatches","match","setOptions","defaultedQueryOptions","newObservers","map","newResult","getCurrentResult","hasIndexChange","some","length","hasListeners","getQueries","getCurrentQuery","getObservers","getOptimisticResult","matches","r","observerResult","notifyOnChangeProps","trackResult","#combineResult","input","combine","replaceEqualDeep","#findMatchingObservers","prevObserversMap","Map","queryHash","defaultQueryOptions","matchingObservers","flatMap","defaultedOptions","get","matchedQueryHashes","unmatchedQueries","has","getObserver","currentObserver","find","o","QueryObserver","newOrReusedObservers","sortMatchesByOrderOfQueries","a","b","concat","sort","#onUpdate","#notify","listener"],"mappings":"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"}
1
+ {"version":3,"file":"queriesObserver.js","sources":["../../src/queriesObserver.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport type {\n QueryObserverOptions,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions } from './queryObserver'\nimport { QueryObserver } from './queryObserver'\nimport { Subscribable } from './subscribable'\nimport { replaceEqualDeep } from './utils'\n\nfunction difference<T>(array1: T[], array2: T[]): T[] {\n return array1.filter((x) => array2.indexOf(x) === -1)\n}\n\nfunction replaceAt<T>(array: T[], index: number, value: T): T[] {\n const copy = array.slice(0)\n copy[index] = value\n return copy\n}\n\ntype QueriesObserverListener = (result: QueryObserverResult[]) => void\n\nexport interface QueriesObserverOptions<\n TCombinedResult = QueryObserverResult[],\n> {\n combine?: (result: QueryObserverResult[]) => TCombinedResult\n}\n\nexport class QueriesObserver<\n TCombinedResult = QueryObserverResult[],\n> extends Subscribable<QueriesObserverListener> {\n #client: QueryClient\n #result!: QueryObserverResult[]\n #queries: QueryObserverOptions[]\n #observers: QueryObserver[]\n #options?: QueriesObserverOptions<TCombinedResult>\n #combinedResult!: TCombinedResult\n\n constructor(\n client: QueryClient,\n queries: QueryObserverOptions[],\n options?: QueriesObserverOptions<TCombinedResult>,\n ) {\n super()\n\n this.#client = client\n this.#queries = []\n this.#observers = []\n\n this.#setResult([])\n this.setQueries(queries, options)\n }\n\n #setResult(value: QueryObserverResult[]) {\n this.#result = value\n this.#combinedResult = this.#combineResult(value)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.size) {\n this.destroy()\n }\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.#observers.forEach((observer) => {\n observer.destroy()\n })\n }\n\n setQueries(\n queries: QueryObserverOptions[],\n options?: QueriesObserverOptions<TCombinedResult>,\n notifyOptions?: NotifyOptions,\n ): void {\n this.#queries = queries\n this.#options = options\n\n notifyManager.batch(() => {\n const prevObservers = this.#observers\n\n const newObserverMatches = this.#findMatchingObservers(this.#queries)\n\n // set options for the new observers to notify of changes\n newObserverMatches.forEach((match) =>\n match.observer.setOptions(match.defaultedQueryOptions, notifyOptions),\n )\n\n const newObservers = newObserverMatches.map((match) => match.observer)\n const newResult = newObservers.map((observer) =>\n observer.getCurrentResult(),\n )\n\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index],\n )\n if (prevObservers.length === newObservers.length && !hasIndexChange) {\n return\n }\n\n this.#observers = newObservers\n this.#setResult(newResult)\n\n if (!this.hasListeners()) {\n return\n }\n\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy()\n })\n\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n\n this.#notify()\n })\n }\n\n getCurrentResult(): TCombinedResult {\n return this.#combinedResult\n }\n\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery())\n }\n\n getObservers() {\n return this.#observers\n }\n\n getOptimisticResult(\n queries: QueryObserverOptions[],\n ): [\n rawResult: QueryObserverResult[],\n combineResult: (r?: QueryObserverResult[]) => TCombinedResult,\n trackResult: () => QueryObserverResult[],\n ] {\n const matches = this.#findMatchingObservers(queries)\n const result = matches.map((match) =>\n match.observer.getOptimisticResult(match.defaultedQueryOptions),\n )\n\n return [\n result,\n (r?: QueryObserverResult[]) => {\n return this.#combineResult(r ?? result)\n },\n () => {\n return matches.map((match, index) => {\n const observerResult = result[index]!\n return !match.defaultedQueryOptions.notifyOnChangeProps\n ? match.observer.trackResult(observerResult)\n : observerResult\n })\n },\n ]\n }\n\n #combineResult(input: QueryObserverResult[]): TCombinedResult {\n const combine = this.#options?.combine\n if (combine) {\n return replaceEqualDeep(this.#combinedResult, combine(input))\n }\n return input as any\n }\n\n #findMatchingObservers(\n queries: QueryObserverOptions[],\n ): QueryObserverMatch[] {\n const prevObservers = this.#observers\n const prevObserversMap = new Map(\n prevObservers.map((observer) => [observer.options.queryHash, observer]),\n )\n\n const defaultedQueryOptions = queries.map((options) =>\n this.#client.defaultQueryOptions(options),\n )\n\n const matchingObservers: QueryObserverMatch[] =\n defaultedQueryOptions.flatMap((defaultedOptions) => {\n const match = prevObserversMap.get(defaultedOptions.queryHash)\n if (match != null) {\n return [{ defaultedQueryOptions: defaultedOptions, observer: match }]\n }\n return []\n })\n\n const matchedQueryHashes = new Set(\n matchingObservers.map((match) => match.defaultedQueryOptions.queryHash),\n )\n const unmatchedQueries = defaultedQueryOptions.filter(\n (defaultedOptions) => !matchedQueryHashes.has(defaultedOptions.queryHash),\n )\n\n const getObserver = (options: QueryObserverOptions): QueryObserver => {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n const currentObserver = this.#observers.find(\n (o) => o.options.queryHash === defaultedOptions.queryHash,\n )\n return (\n currentObserver ?? new QueryObserver(this.#client, defaultedOptions)\n )\n }\n\n const newOrReusedObservers: QueryObserverMatch[] = unmatchedQueries.map(\n (options) => {\n return {\n defaultedQueryOptions: options,\n observer: getObserver(options),\n }\n },\n )\n\n const sortMatchesByOrderOfQueries = (\n a: QueryObserverMatch,\n b: QueryObserverMatch,\n ): number =>\n defaultedQueryOptions.indexOf(a.defaultedQueryOptions) -\n defaultedQueryOptions.indexOf(b.defaultedQueryOptions)\n\n return matchingObservers\n .concat(newOrReusedObservers)\n .sort(sortMatchesByOrderOfQueries)\n }\n\n #onUpdate(observer: QueryObserver, result: QueryObserverResult): void {\n const index = this.#observers.indexOf(observer)\n if (index !== -1) {\n this.#setResult(replaceAt(this.#result, index, result))\n this.#notify()\n }\n }\n\n #notify(): void {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result)\n })\n })\n }\n}\n\ntype QueryObserverMatch = {\n defaultedQueryOptions: DefaultedQueryObserverOptions\n observer: QueryObserver\n}\n"],"names":["difference","array1","array2","filter","x","indexOf","replaceAt","array","index","value","copy","slice","QueriesObserver","Subscribable","constructor","client","queries","options","setQueries","#setResult","onSubscribe","listeners","size","forEach","observer","subscribe","result","onUnsubscribe","destroy","Set","notifyOptions","notifyManager","batch","prevObservers","newObserverMatches","match","setOptions","defaultedQueryOptions","newObservers","map","newResult","getCurrentResult","hasIndexChange","some","length","hasListeners","getQueries","getCurrentQuery","getObservers","getOptimisticResult","matches","r","observerResult","notifyOnChangeProps","trackResult","#combineResult","input","combine","replaceEqualDeep","#findMatchingObservers","prevObserversMap","Map","queryHash","defaultQueryOptions","matchingObservers","flatMap","defaultedOptions","get","matchedQueryHashes","unmatchedQueries","has","getObserver","currentObserver","find","o","QueryObserver","newOrReusedObservers","sortMatchesByOrderOfQueries","a","b","concat","sort","#onUpdate","#notify","listener"],"mappings":"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"}
@@ -1,13 +1,15 @@
1
- import { replaceData, noop, timeUntilStale } from './utils.mjs';
2
- import { notifyManager } from './notifyManager.mjs';
3
- import { createRetryer, isCancelledError, canFetch } from './retryer.mjs';
4
- import { Removable } from './removable.mjs';
1
+ 'use strict';
2
+
3
+ var utils = require('./utils.cjs');
4
+ var notifyManager = require('./notifyManager.cjs');
5
+ var retryer = require('./retryer.cjs');
6
+ var removable = require('./removable.cjs');
5
7
 
6
8
  // TYPES
7
9
 
8
10
  // CLASS
9
11
 
10
- class Query extends Removable {
12
+ class Query extends removable.Removable {
11
13
  #initialState;
12
14
  #revertState;
13
15
  #cache;
@@ -45,7 +47,7 @@ class Query extends Removable {
45
47
  }
46
48
  }
47
49
  setData(newData, options) {
48
- const data = replaceData(this.state.data, newData, this.options);
50
+ const data = utils.replaceData(this.state.data, newData, this.options);
49
51
 
50
52
  // Set data and mark it as cached
51
53
  this.#dispatch({
@@ -66,7 +68,7 @@ class Query extends Removable {
66
68
  cancel(options) {
67
69
  const promise = this.#promise;
68
70
  this.#retryer?.cancel(options);
69
- return promise ? promise.then(noop).catch(noop) : Promise.resolve();
71
+ return promise ? promise.then(utils.noop).catch(utils.noop) : Promise.resolve();
70
72
  }
71
73
  destroy() {
72
74
  super.destroy();
@@ -88,7 +90,7 @@ class Query extends Removable {
88
90
  return this.state.isInvalidated || !this.state.dataUpdatedAt || this.#observers.some(observer => observer.getCurrentResult().isStale);
89
91
  }
90
92
  isStaleByTime(staleTime = 0) {
91
- return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);
93
+ return this.state.isInvalidated || !this.state.dataUpdatedAt || !utils.timeUntilStale(this.state.dataUpdatedAt, staleTime);
92
94
  }
93
95
  onFocus() {
94
96
  const observer = this.#observers.find(x => x.shouldFetchOnWindowFocus());
@@ -242,13 +244,13 @@ class Query extends Removable {
242
244
  }
243
245
  const onError = error => {
244
246
  // Optimistically update state if needed
245
- if (!(isCancelledError(error) && error.silent)) {
247
+ if (!(retryer.isCancelledError(error) && error.silent)) {
246
248
  this.#dispatch({
247
249
  type: 'error',
248
250
  error: error
249
251
  });
250
252
  }
251
- if (!isCancelledError(error)) {
253
+ if (!retryer.isCancelledError(error)) {
252
254
  // Notify cache callback
253
255
  this.#cache.config.onError?.(error, this);
254
256
  this.#cache.config.onSettled?.(this.state.data, error, this);
@@ -261,7 +263,7 @@ class Query extends Removable {
261
263
  };
262
264
 
263
265
  // Try to fetch the data
264
- this.#retryer = createRetryer({
266
+ this.#retryer = retryer.createRetryer({
265
267
  fn: context.fetchFn,
266
268
  abort: abortController.abort.bind(abortController),
267
269
  onSuccess: data => {
@@ -333,7 +335,7 @@ class Query extends Removable {
333
335
  fetchFailureCount: 0,
334
336
  fetchFailureReason: null,
335
337
  fetchMeta: action.meta ?? null,
336
- fetchStatus: canFetch(this.options.networkMode) ? 'fetching' : 'paused',
338
+ fetchStatus: retryer.canFetch(this.options.networkMode) ? 'fetching' : 'paused',
337
339
  ...(!state.dataUpdatedAt && {
338
340
  error: null,
339
341
  status: 'pending'
@@ -356,7 +358,7 @@ class Query extends Removable {
356
358
  };
357
359
  case 'error':
358
360
  const error = action.error;
359
- if (isCancelledError(error) && error.revert && this.#revertState) {
361
+ if (retryer.isCancelledError(error) && error.revert && this.#revertState) {
360
362
  return {
361
363
  ...this.#revertState
362
364
  };
@@ -384,7 +386,7 @@ class Query extends Removable {
384
386
  }
385
387
  };
386
388
  this.state = reducer(this.state);
387
- notifyManager.batch(() => {
389
+ notifyManager.notifyManager.batch(() => {
388
390
  this.#observers.forEach(observer => {
389
391
  observer.onQueryUpdate();
390
392
  });
@@ -416,5 +418,5 @@ function getDefaultState(options) {
416
418
  };
417
419
  }
418
420
 
419
- export { Query };
420
- //# sourceMappingURL=query.mjs.map
421
+ exports.Query = Query;
422
+ //# sourceMappingURL=query.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.mjs","sources":["../../src/query.ts"],"sourcesContent":["import { noop, replaceData, timeUntilStale } from './utils'\nimport type {\n InitialDataFunction,\n QueryKey,\n QueryOptions,\n QueryStatus,\n QueryFunctionContext,\n QueryMeta,\n CancelOptions,\n SetDataOptions,\n FetchStatus,\n DefaultError,\n} from './types'\nimport type { QueryCache } from './queryCache'\nimport type { QueryObserver } from './queryObserver'\nimport { notifyManager } from './notifyManager'\nimport type { Retryer } from './retryer'\nimport { isCancelledError, canFetch, createRetryer } from './retryer'\nimport { Removable } from './removable'\n\n// TYPES\n\ninterface QueryConfig<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n cache: QueryCache\n queryKey: TQueryKey\n queryHash: string\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n defaultOptions?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n state?: QueryState<TData, TError>\n}\n\nexport interface QueryState<TData = unknown, TError = DefaultError> {\n data: TData | undefined\n dataUpdateCount: number\n dataUpdatedAt: number\n error: TError | null\n errorUpdateCount: number\n errorUpdatedAt: number\n fetchFailureCount: number\n fetchFailureReason: TError | null\n fetchMeta: FetchMeta | null\n isInvalidated: boolean\n status: QueryStatus\n fetchStatus: FetchStatus\n}\n\nexport interface FetchContext<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n fetchFn: () => unknown | Promise<unknown>\n fetchOptions?: FetchOptions\n signal: AbortSignal\n options: QueryOptions<TQueryFnData, TError, TData, any>\n queryKey: TQueryKey\n state: QueryState<TData, TError>\n}\n\nexport interface QueryBehavior<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n onFetch: (\n context: FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n ) => void\n}\n\nexport type FetchDirection = 'forward' | 'backward'\n\nexport interface FetchMeta {\n fetchMore?: { direction: FetchDirection }\n}\n\nexport interface FetchOptions {\n cancelRefetch?: boolean\n meta?: FetchMeta\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError\n}\n\ninterface FetchAction {\n type: 'fetch'\n meta?: FetchMeta\n}\n\ninterface SuccessAction<TData> {\n data: TData | undefined\n type: 'success'\n dataUpdatedAt?: number\n manual?: boolean\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface InvalidateAction {\n type: 'invalidate'\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\ninterface SetStateAction<TData, TError> {\n type: 'setState'\n state: Partial<QueryState<TData, TError>>\n setStateOptions?: SetStateOptions\n}\n\nexport type Action<TData, TError> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | FetchAction\n | InvalidateAction\n | PauseAction\n | SetStateAction<TData, TError>\n | SuccessAction<TData>\n\nexport interface SetStateOptions {\n meta?: any\n}\n\n// CLASS\n\nexport class Query<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Removable {\n queryKey: TQueryKey\n queryHash: string\n options!: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n state: QueryState<TData, TError>\n isFetchingOptimistic?: boolean\n\n #initialState: QueryState<TData, TError>\n #revertState?: QueryState<TData, TError>\n #cache: QueryCache\n #promise?: Promise<TData>\n #retryer?: Retryer<TData>\n #observers: QueryObserver<any, any, any, any, any>[]\n #defaultOptions?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n #abortSignalConsumed: boolean\n\n constructor(config: QueryConfig<TQueryFnData, TError, TData, TQueryKey>) {\n super()\n\n this.#abortSignalConsumed = false\n this.#defaultOptions = config.defaultOptions\n this.#setOptions(config.options)\n this.#observers = []\n this.#cache = config.cache\n this.queryKey = config.queryKey\n this.queryHash = config.queryHash\n this.#initialState = config.state || getDefaultState(this.options)\n this.state = this.#initialState\n this.scheduleGc()\n }\n get meta(): QueryMeta | undefined {\n return this.options.meta\n }\n\n #setOptions(\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): void {\n this.options = { ...this.#defaultOptions, ...options }\n\n this.updateGcTime(this.options.gcTime)\n }\n\n protected optionalRemove() {\n if (!this.#observers.length && this.state.fetchStatus === 'idle') {\n this.#cache.remove(this)\n }\n }\n\n setData(\n newData: TData,\n options?: SetDataOptions & { manual: boolean },\n ): TData {\n const data = replaceData(this.state.data, newData, this.options)\n\n // Set data and mark it as cached\n this.#dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual,\n })\n\n return data\n }\n\n setState(\n state: Partial<QueryState<TData, TError>>,\n setStateOptions?: SetStateOptions,\n ): void {\n this.#dispatch({ type: 'setState', state, setStateOptions })\n }\n\n cancel(options?: CancelOptions): Promise<void> {\n const promise = this.#promise\n this.#retryer?.cancel(options)\n return promise ? promise.then(noop).catch(noop) : Promise.resolve()\n }\n\n destroy(): void {\n super.destroy()\n\n this.cancel({ silent: true })\n }\n\n reset(): void {\n this.destroy()\n this.setState(this.#initialState)\n }\n\n isActive(): boolean {\n return this.#observers.some(\n (observer) => observer.options.enabled !== false,\n )\n }\n\n isDisabled(): boolean {\n return this.getObserversCount() > 0 && !this.isActive()\n }\n\n isStale(): boolean {\n return (\n this.state.isInvalidated ||\n !this.state.dataUpdatedAt ||\n this.#observers.some((observer) => observer.getCurrentResult().isStale)\n )\n }\n\n isStaleByTime(staleTime = 0): boolean {\n return (\n this.state.isInvalidated ||\n !this.state.dataUpdatedAt ||\n !timeUntilStale(this.state.dataUpdatedAt, staleTime)\n )\n }\n\n onFocus(): void {\n const observer = this.#observers.find((x) => x.shouldFetchOnWindowFocus())\n\n observer?.refetch({ cancelRefetch: false })\n\n // Continue fetch if currently paused\n this.#retryer?.continue()\n }\n\n onOnline(): void {\n const observer = this.#observers.find((x) => x.shouldFetchOnReconnect())\n\n observer?.refetch({ cancelRefetch: false })\n\n // Continue fetch if currently paused\n this.#retryer?.continue()\n }\n\n addObserver(observer: QueryObserver<any, any, any, any, any>): void {\n if (this.#observers.indexOf(observer) === -1) {\n this.#observers.push(observer)\n\n // Stop the query from being garbage collected\n this.clearGcTimeout()\n\n this.#cache.notify({ type: 'observerAdded', query: this, observer })\n }\n }\n\n removeObserver(observer: QueryObserver<any, any, any, any, any>): void {\n if (this.#observers.indexOf(observer) !== -1) {\n this.#observers = this.#observers.filter((x) => x !== observer)\n\n if (!this.#observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true })\n } else {\n this.#retryer.cancelRetry()\n }\n }\n\n this.scheduleGc()\n }\n\n this.#cache.notify({ type: 'observerRemoved', query: this, observer })\n }\n }\n\n getObserversCount(): number {\n return this.#observers.length\n }\n\n invalidate(): void {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: 'invalidate' })\n }\n }\n\n fetch(\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n fetchOptions?: FetchOptions,\n ): Promise<TData> {\n if (this.state.fetchStatus !== 'idle') {\n if (this.state.dataUpdatedAt && fetchOptions?.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({ silent: true })\n } else if (this.#promise) {\n // make sure that retries that were potentially cancelled due to unmounts can continue\n this.#retryer?.continueRetry()\n // Return current promise if we are already fetching\n return this.#promise\n }\n }\n\n // Update config if passed, otherwise the config from the last execution is used\n if (options) {\n this.#setOptions(options)\n }\n\n // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n if (!this.options.queryFn) {\n const observer = this.#observers.find((x) => x.options.queryFn)\n if (observer) {\n this.#setOptions(observer.options)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`,\n )\n }\n }\n\n const abortController = new AbortController()\n\n // Create query function context\n const queryFnContext: Omit<QueryFunctionContext<TQueryKey>, 'signal'> = {\n queryKey: this.queryKey,\n meta: this.meta,\n }\n\n // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true\n return abortController.signal\n },\n })\n }\n\n addSignalProperty(queryFnContext)\n\n // Create fetch function\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject(new Error('Missing queryFn'))\n }\n this.#abortSignalConsumed = false\n return this.options.queryFn(\n queryFnContext as QueryFunctionContext<TQueryKey>,\n )\n }\n\n // Trigger behavior hook\n const context: Omit<\n FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n 'signal'\n > = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn,\n }\n\n addSignalProperty(context)\n\n this.options.behavior?.onFetch(\n context as FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n )\n\n // Store state in case the current fetch needs to be reverted\n this.#revertState = this.state\n\n // Set to fetching state if not already in it\n if (\n this.state.fetchStatus === 'idle' ||\n this.state.fetchMeta !== context.fetchOptions?.meta\n ) {\n this.#dispatch({ type: 'fetch', meta: context.fetchOptions?.meta })\n }\n\n const onError = (error: TError | { silent?: boolean }) => {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n this.#dispatch({\n type: 'error',\n error: error as TError,\n })\n }\n\n if (!isCancelledError(error)) {\n // Notify cache callback\n this.#cache.config.onError?.(\n error as any,\n this as Query<any, any, any, any>,\n )\n this.#cache.config.onSettled?.(\n this.state.data,\n error as any,\n this as Query<any, any, any, any>,\n )\n }\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc()\n }\n this.isFetchingOptimistic = false\n }\n\n // Try to fetch the data\n this.#retryer = createRetryer({\n fn: context.fetchFn as () => Promise<TData>,\n abort: abortController.abort.bind(abortController),\n onSuccess: (data) => {\n if (typeof data === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`,\n )\n }\n onError(new Error(`${this.queryHash} data is undefined`) as any)\n return\n }\n\n this.setData(data)\n\n // Notify cache callback\n this.#cache.config.onSuccess?.(data, this as Query<any, any, any, any>)\n this.#cache.config.onSettled?.(\n data,\n this.state.error as any,\n this as Query<any, any, any, any>,\n )\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc()\n }\n this.isFetchingOptimistic = false\n },\n onError,\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.#dispatch({ type: 'continue' })\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n })\n\n this.#promise = this.#retryer.promise\n\n return this.#promise\n }\n\n #dispatch(action: Action<TData, TError>): void {\n const reducer = (\n state: QueryState<TData, TError>,\n ): QueryState<TData, TError> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n fetchStatus: 'paused',\n }\n case 'continue':\n return {\n ...state,\n fetchStatus: 'fetching',\n }\n case 'fetch':\n return {\n ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: action.meta ?? null,\n fetchStatus: canFetch(this.options.networkMode)\n ? 'fetching'\n : 'paused',\n ...(!state.dataUpdatedAt && {\n error: null,\n status: 'pending',\n }),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success',\n ...(!action.manual && {\n fetchStatus: 'idle',\n fetchFailureCount: 0,\n fetchFailureReason: null,\n }),\n }\n case 'error':\n const error = action.error as unknown\n\n if (isCancelledError(error) && error.revert && this.#revertState) {\n return { ...this.#revertState }\n }\n\n return {\n ...state,\n error: error as TError,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error as TError,\n fetchStatus: 'idle',\n status: 'error',\n }\n case 'invalidate':\n return {\n ...state,\n isInvalidated: true,\n }\n case 'setState':\n return {\n ...state,\n ...action.state,\n }\n }\n }\n\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onQueryUpdate()\n })\n\n this.#cache.notify({ query: this, type: 'updated', action })\n })\n }\n}\n\nfunction getDefaultState<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey,\n>(\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n): QueryState<TData, TError> {\n const data =\n typeof options.initialData === 'function'\n ? (options.initialData as InitialDataFunction<TData>)()\n : options.initialData\n\n const hasData = typeof data !== 'undefined'\n\n const initialDataUpdatedAt = hasData\n ? typeof options.initialDataUpdatedAt === 'function'\n ? (options.initialDataUpdatedAt as () => number | undefined)()\n : options.initialDataUpdatedAt\n : 0\n\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'pending',\n fetchStatus: 'idle',\n }\n}\n"],"names":["Query","Removable","constructor","config","defaultOptions","options","cache","queryKey","queryHash","state","getDefaultState","scheduleGc","meta","#setOptions","updateGcTime","gcTime","optionalRemove","length","fetchStatus","remove","setData","newData","data","replaceData","type","dataUpdatedAt","updatedAt","manual","setState","setStateOptions","cancel","promise","then","noop","catch","Promise","resolve","destroy","silent","reset","isActive","some","observer","enabled","isDisabled","getObserversCount","isStale","isInvalidated","getCurrentResult","isStaleByTime","staleTime","timeUntilStale","onFocus","find","x","shouldFetchOnWindowFocus","refetch","cancelRefetch","continue","onOnline","shouldFetchOnReconnect","addObserver","indexOf","push","clearGcTimeout","notify","query","removeObserver","filter","revert","cancelRetry","invalidate","fetch","fetchOptions","continueRetry","queryFn","process","env","NODE_ENV","Array","isArray","console","error","abortController","AbortController","queryFnContext","addSignalProperty","object","Object","defineProperty","enumerable","get","signal","fetchFn","reject","Error","context","behavior","onFetch","fetchMeta","onError","isCancelledError","onSettled","isFetchingOptimistic","createRetryer","fn","abort","bind","onSuccess","onFail","failureCount","onPause","onContinue","retry","retryDelay","networkMode","#dispatch","action","reducer","fetchFailureCount","fetchFailureReason","canFetch","status","dataUpdateCount","Date","now","revertState","errorUpdateCount","errorUpdatedAt","notifyManager","batch","forEach","onQueryUpdate","initialData","hasData","initialDataUpdatedAt"],"mappings":"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"}
1
+ {"version":3,"file":"query.cjs","sources":["../../src/query.ts"],"sourcesContent":["import { noop, replaceData, timeUntilStale } from './utils'\nimport type {\n InitialDataFunction,\n QueryKey,\n QueryOptions,\n QueryStatus,\n QueryFunctionContext,\n QueryMeta,\n CancelOptions,\n SetDataOptions,\n FetchStatus,\n DefaultError,\n} from './types'\nimport type { QueryCache } from './queryCache'\nimport type { QueryObserver } from './queryObserver'\nimport { notifyManager } from './notifyManager'\nimport type { Retryer } from './retryer'\nimport { isCancelledError, canFetch, createRetryer } from './retryer'\nimport { Removable } from './removable'\n\n// TYPES\n\ninterface QueryConfig<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n cache: QueryCache\n queryKey: TQueryKey\n queryHash: string\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n defaultOptions?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n state?: QueryState<TData, TError>\n}\n\nexport interface QueryState<TData = unknown, TError = DefaultError> {\n data: TData | undefined\n dataUpdateCount: number\n dataUpdatedAt: number\n error: TError | null\n errorUpdateCount: number\n errorUpdatedAt: number\n fetchFailureCount: number\n fetchFailureReason: TError | null\n fetchMeta: FetchMeta | null\n isInvalidated: boolean\n status: QueryStatus\n fetchStatus: FetchStatus\n}\n\nexport interface FetchContext<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n fetchFn: () => unknown | Promise<unknown>\n fetchOptions?: FetchOptions\n signal: AbortSignal\n options: QueryOptions<TQueryFnData, TError, TData, any>\n queryKey: TQueryKey\n state: QueryState<TData, TError>\n}\n\nexport interface QueryBehavior<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n onFetch: (\n context: FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n ) => void\n}\n\nexport type FetchDirection = 'forward' | 'backward'\n\nexport interface FetchMeta {\n fetchMore?: { direction: FetchDirection }\n}\n\nexport interface FetchOptions {\n cancelRefetch?: boolean\n meta?: FetchMeta\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError\n}\n\ninterface FetchAction {\n type: 'fetch'\n meta?: FetchMeta\n}\n\ninterface SuccessAction<TData> {\n data: TData | undefined\n type: 'success'\n dataUpdatedAt?: number\n manual?: boolean\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface InvalidateAction {\n type: 'invalidate'\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\ninterface SetStateAction<TData, TError> {\n type: 'setState'\n state: Partial<QueryState<TData, TError>>\n setStateOptions?: SetStateOptions\n}\n\nexport type Action<TData, TError> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | FetchAction\n | InvalidateAction\n | PauseAction\n | SetStateAction<TData, TError>\n | SuccessAction<TData>\n\nexport interface SetStateOptions {\n meta?: any\n}\n\n// CLASS\n\nexport class Query<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Removable {\n queryKey: TQueryKey\n queryHash: string\n options!: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n state: QueryState<TData, TError>\n isFetchingOptimistic?: boolean\n\n #initialState: QueryState<TData, TError>\n #revertState?: QueryState<TData, TError>\n #cache: QueryCache\n #promise?: Promise<TData>\n #retryer?: Retryer<TData>\n #observers: QueryObserver<any, any, any, any, any>[]\n #defaultOptions?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n #abortSignalConsumed: boolean\n\n constructor(config: QueryConfig<TQueryFnData, TError, TData, TQueryKey>) {\n super()\n\n this.#abortSignalConsumed = false\n this.#defaultOptions = config.defaultOptions\n this.#setOptions(config.options)\n this.#observers = []\n this.#cache = config.cache\n this.queryKey = config.queryKey\n this.queryHash = config.queryHash\n this.#initialState = config.state || getDefaultState(this.options)\n this.state = this.#initialState\n this.scheduleGc()\n }\n get meta(): QueryMeta | undefined {\n return this.options.meta\n }\n\n #setOptions(\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): void {\n this.options = { ...this.#defaultOptions, ...options }\n\n this.updateGcTime(this.options.gcTime)\n }\n\n protected optionalRemove() {\n if (!this.#observers.length && this.state.fetchStatus === 'idle') {\n this.#cache.remove(this)\n }\n }\n\n setData(\n newData: TData,\n options?: SetDataOptions & { manual: boolean },\n ): TData {\n const data = replaceData(this.state.data, newData, this.options)\n\n // Set data and mark it as cached\n this.#dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual,\n })\n\n return data\n }\n\n setState(\n state: Partial<QueryState<TData, TError>>,\n setStateOptions?: SetStateOptions,\n ): void {\n this.#dispatch({ type: 'setState', state, setStateOptions })\n }\n\n cancel(options?: CancelOptions): Promise<void> {\n const promise = this.#promise\n this.#retryer?.cancel(options)\n return promise ? promise.then(noop).catch(noop) : Promise.resolve()\n }\n\n destroy(): void {\n super.destroy()\n\n this.cancel({ silent: true })\n }\n\n reset(): void {\n this.destroy()\n this.setState(this.#initialState)\n }\n\n isActive(): boolean {\n return this.#observers.some(\n (observer) => observer.options.enabled !== false,\n )\n }\n\n isDisabled(): boolean {\n return this.getObserversCount() > 0 && !this.isActive()\n }\n\n isStale(): boolean {\n return (\n this.state.isInvalidated ||\n !this.state.dataUpdatedAt ||\n this.#observers.some((observer) => observer.getCurrentResult().isStale)\n )\n }\n\n isStaleByTime(staleTime = 0): boolean {\n return (\n this.state.isInvalidated ||\n !this.state.dataUpdatedAt ||\n !timeUntilStale(this.state.dataUpdatedAt, staleTime)\n )\n }\n\n onFocus(): void {\n const observer = this.#observers.find((x) => x.shouldFetchOnWindowFocus())\n\n observer?.refetch({ cancelRefetch: false })\n\n // Continue fetch if currently paused\n this.#retryer?.continue()\n }\n\n onOnline(): void {\n const observer = this.#observers.find((x) => x.shouldFetchOnReconnect())\n\n observer?.refetch({ cancelRefetch: false })\n\n // Continue fetch if currently paused\n this.#retryer?.continue()\n }\n\n addObserver(observer: QueryObserver<any, any, any, any, any>): void {\n if (this.#observers.indexOf(observer) === -1) {\n this.#observers.push(observer)\n\n // Stop the query from being garbage collected\n this.clearGcTimeout()\n\n this.#cache.notify({ type: 'observerAdded', query: this, observer })\n }\n }\n\n removeObserver(observer: QueryObserver<any, any, any, any, any>): void {\n if (this.#observers.indexOf(observer) !== -1) {\n this.#observers = this.#observers.filter((x) => x !== observer)\n\n if (!this.#observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true })\n } else {\n this.#retryer.cancelRetry()\n }\n }\n\n this.scheduleGc()\n }\n\n this.#cache.notify({ type: 'observerRemoved', query: this, observer })\n }\n }\n\n getObserversCount(): number {\n return this.#observers.length\n }\n\n invalidate(): void {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: 'invalidate' })\n }\n }\n\n fetch(\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n fetchOptions?: FetchOptions,\n ): Promise<TData> {\n if (this.state.fetchStatus !== 'idle') {\n if (this.state.dataUpdatedAt && fetchOptions?.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({ silent: true })\n } else if (this.#promise) {\n // make sure that retries that were potentially cancelled due to unmounts can continue\n this.#retryer?.continueRetry()\n // Return current promise if we are already fetching\n return this.#promise\n }\n }\n\n // Update config if passed, otherwise the config from the last execution is used\n if (options) {\n this.#setOptions(options)\n }\n\n // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n if (!this.options.queryFn) {\n const observer = this.#observers.find((x) => x.options.queryFn)\n if (observer) {\n this.#setOptions(observer.options)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`,\n )\n }\n }\n\n const abortController = new AbortController()\n\n // Create query function context\n const queryFnContext: Omit<QueryFunctionContext<TQueryKey>, 'signal'> = {\n queryKey: this.queryKey,\n meta: this.meta,\n }\n\n // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true\n return abortController.signal\n },\n })\n }\n\n addSignalProperty(queryFnContext)\n\n // Create fetch function\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject(new Error('Missing queryFn'))\n }\n this.#abortSignalConsumed = false\n return this.options.queryFn(\n queryFnContext as QueryFunctionContext<TQueryKey>,\n )\n }\n\n // Trigger behavior hook\n const context: Omit<\n FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n 'signal'\n > = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn,\n }\n\n addSignalProperty(context)\n\n this.options.behavior?.onFetch(\n context as FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n )\n\n // Store state in case the current fetch needs to be reverted\n this.#revertState = this.state\n\n // Set to fetching state if not already in it\n if (\n this.state.fetchStatus === 'idle' ||\n this.state.fetchMeta !== context.fetchOptions?.meta\n ) {\n this.#dispatch({ type: 'fetch', meta: context.fetchOptions?.meta })\n }\n\n const onError = (error: TError | { silent?: boolean }) => {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n this.#dispatch({\n type: 'error',\n error: error as TError,\n })\n }\n\n if (!isCancelledError(error)) {\n // Notify cache callback\n this.#cache.config.onError?.(\n error as any,\n this as Query<any, any, any, any>,\n )\n this.#cache.config.onSettled?.(\n this.state.data,\n error as any,\n this as Query<any, any, any, any>,\n )\n }\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc()\n }\n this.isFetchingOptimistic = false\n }\n\n // Try to fetch the data\n this.#retryer = createRetryer({\n fn: context.fetchFn as () => Promise<TData>,\n abort: abortController.abort.bind(abortController),\n onSuccess: (data) => {\n if (typeof data === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`,\n )\n }\n onError(new Error(`${this.queryHash} data is undefined`) as any)\n return\n }\n\n this.setData(data)\n\n // Notify cache callback\n this.#cache.config.onSuccess?.(data, this as Query<any, any, any, any>)\n this.#cache.config.onSettled?.(\n data,\n this.state.error as any,\n this as Query<any, any, any, any>,\n )\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc()\n }\n this.isFetchingOptimistic = false\n },\n onError,\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.#dispatch({ type: 'continue' })\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n })\n\n this.#promise = this.#retryer.promise\n\n return this.#promise\n }\n\n #dispatch(action: Action<TData, TError>): void {\n const reducer = (\n state: QueryState<TData, TError>,\n ): QueryState<TData, TError> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n fetchStatus: 'paused',\n }\n case 'continue':\n return {\n ...state,\n fetchStatus: 'fetching',\n }\n case 'fetch':\n return {\n ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: action.meta ?? null,\n fetchStatus: canFetch(this.options.networkMode)\n ? 'fetching'\n : 'paused',\n ...(!state.dataUpdatedAt && {\n error: null,\n status: 'pending',\n }),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success',\n ...(!action.manual && {\n fetchStatus: 'idle',\n fetchFailureCount: 0,\n fetchFailureReason: null,\n }),\n }\n case 'error':\n const error = action.error as unknown\n\n if (isCancelledError(error) && error.revert && this.#revertState) {\n return { ...this.#revertState }\n }\n\n return {\n ...state,\n error: error as TError,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error as TError,\n fetchStatus: 'idle',\n status: 'error',\n }\n case 'invalidate':\n return {\n ...state,\n isInvalidated: true,\n }\n case 'setState':\n return {\n ...state,\n ...action.state,\n }\n }\n }\n\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onQueryUpdate()\n })\n\n this.#cache.notify({ query: this, type: 'updated', action })\n })\n }\n}\n\nfunction getDefaultState<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey,\n>(\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n): QueryState<TData, TError> {\n const data =\n typeof options.initialData === 'function'\n ? (options.initialData as InitialDataFunction<TData>)()\n : options.initialData\n\n const hasData = typeof data !== 'undefined'\n\n const initialDataUpdatedAt = hasData\n ? typeof options.initialDataUpdatedAt === 'function'\n ? (options.initialDataUpdatedAt as () => number | undefined)()\n : options.initialDataUpdatedAt\n : 0\n\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'pending',\n fetchStatus: 'idle',\n }\n}\n"],"names":["Query","Removable","constructor","config","defaultOptions","options","cache","queryKey","queryHash","state","getDefaultState","scheduleGc","meta","#setOptions","updateGcTime","gcTime","optionalRemove","length","fetchStatus","remove","setData","newData","data","replaceData","type","dataUpdatedAt","updatedAt","manual","setState","setStateOptions","cancel","promise","then","noop","catch","Promise","resolve","destroy","silent","reset","isActive","some","observer","enabled","isDisabled","getObserversCount","isStale","isInvalidated","getCurrentResult","isStaleByTime","staleTime","timeUntilStale","onFocus","find","x","shouldFetchOnWindowFocus","refetch","cancelRefetch","continue","onOnline","shouldFetchOnReconnect","addObserver","indexOf","push","clearGcTimeout","notify","query","removeObserver","filter","revert","cancelRetry","invalidate","fetch","fetchOptions","continueRetry","queryFn","process","env","NODE_ENV","Array","isArray","console","error","abortController","AbortController","queryFnContext","addSignalProperty","object","Object","defineProperty","enumerable","get","signal","fetchFn","reject","Error","context","behavior","onFetch","fetchMeta","onError","isCancelledError","onSettled","isFetchingOptimistic","createRetryer","fn","abort","bind","onSuccess","onFail","failureCount","onPause","onContinue","retry","retryDelay","networkMode","#dispatch","action","reducer","fetchFailureCount","fetchFailureReason","canFetch","status","dataUpdateCount","Date","now","revertState","errorUpdateCount","errorUpdatedAt","notifyManager","batch","forEach","onQueryUpdate","initialData","hasData","initialDataUpdatedAt"],"mappings":"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"}
@@ -1,15 +1,13 @@
1
- 'use strict';
2
-
3
- var utils = require('./utils.js');
4
- var notifyManager = require('./notifyManager.js');
5
- var retryer = require('./retryer.js');
6
- var removable = require('./removable.js');
1
+ import { replaceData, noop, timeUntilStale } from './utils.js';
2
+ import { notifyManager } from './notifyManager.js';
3
+ import { createRetryer, isCancelledError, canFetch } from './retryer.js';
4
+ import { Removable } from './removable.js';
7
5
 
8
6
  // TYPES
9
7
 
10
8
  // CLASS
11
9
 
12
- class Query extends removable.Removable {
10
+ class Query extends Removable {
13
11
  #initialState;
14
12
  #revertState;
15
13
  #cache;
@@ -47,7 +45,7 @@ class Query extends removable.Removable {
47
45
  }
48
46
  }
49
47
  setData(newData, options) {
50
- const data = utils.replaceData(this.state.data, newData, this.options);
48
+ const data = replaceData(this.state.data, newData, this.options);
51
49
 
52
50
  // Set data and mark it as cached
53
51
  this.#dispatch({
@@ -68,7 +66,7 @@ class Query extends removable.Removable {
68
66
  cancel(options) {
69
67
  const promise = this.#promise;
70
68
  this.#retryer?.cancel(options);
71
- return promise ? promise.then(utils.noop).catch(utils.noop) : Promise.resolve();
69
+ return promise ? promise.then(noop).catch(noop) : Promise.resolve();
72
70
  }
73
71
  destroy() {
74
72
  super.destroy();
@@ -90,7 +88,7 @@ class Query extends removable.Removable {
90
88
  return this.state.isInvalidated || !this.state.dataUpdatedAt || this.#observers.some(observer => observer.getCurrentResult().isStale);
91
89
  }
92
90
  isStaleByTime(staleTime = 0) {
93
- return this.state.isInvalidated || !this.state.dataUpdatedAt || !utils.timeUntilStale(this.state.dataUpdatedAt, staleTime);
91
+ return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);
94
92
  }
95
93
  onFocus() {
96
94
  const observer = this.#observers.find(x => x.shouldFetchOnWindowFocus());
@@ -244,13 +242,13 @@ class Query extends removable.Removable {
244
242
  }
245
243
  const onError = error => {
246
244
  // Optimistically update state if needed
247
- if (!(retryer.isCancelledError(error) && error.silent)) {
245
+ if (!(isCancelledError(error) && error.silent)) {
248
246
  this.#dispatch({
249
247
  type: 'error',
250
248
  error: error
251
249
  });
252
250
  }
253
- if (!retryer.isCancelledError(error)) {
251
+ if (!isCancelledError(error)) {
254
252
  // Notify cache callback
255
253
  this.#cache.config.onError?.(error, this);
256
254
  this.#cache.config.onSettled?.(this.state.data, error, this);
@@ -263,7 +261,7 @@ class Query extends removable.Removable {
263
261
  };
264
262
 
265
263
  // Try to fetch the data
266
- this.#retryer = retryer.createRetryer({
264
+ this.#retryer = createRetryer({
267
265
  fn: context.fetchFn,
268
266
  abort: abortController.abort.bind(abortController),
269
267
  onSuccess: data => {
@@ -335,7 +333,7 @@ class Query extends removable.Removable {
335
333
  fetchFailureCount: 0,
336
334
  fetchFailureReason: null,
337
335
  fetchMeta: action.meta ?? null,
338
- fetchStatus: retryer.canFetch(this.options.networkMode) ? 'fetching' : 'paused',
336
+ fetchStatus: canFetch(this.options.networkMode) ? 'fetching' : 'paused',
339
337
  ...(!state.dataUpdatedAt && {
340
338
  error: null,
341
339
  status: 'pending'
@@ -358,7 +356,7 @@ class Query extends removable.Removable {
358
356
  };
359
357
  case 'error':
360
358
  const error = action.error;
361
- if (retryer.isCancelledError(error) && error.revert && this.#revertState) {
359
+ if (isCancelledError(error) && error.revert && this.#revertState) {
362
360
  return {
363
361
  ...this.#revertState
364
362
  };
@@ -386,7 +384,7 @@ class Query extends removable.Removable {
386
384
  }
387
385
  };
388
386
  this.state = reducer(this.state);
389
- notifyManager.notifyManager.batch(() => {
387
+ notifyManager.batch(() => {
390
388
  this.#observers.forEach(observer => {
391
389
  observer.onQueryUpdate();
392
390
  });
@@ -418,5 +416,5 @@ function getDefaultState(options) {
418
416
  };
419
417
  }
420
418
 
421
- exports.Query = Query;
419
+ export { Query };
422
420
  //# sourceMappingURL=query.js.map