@tanstack/query-core 4.0.8 → 4.0.11-beta.1

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 (100) 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} +22 -7
  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 +6 -1
  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 +6 -1
  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 +10 -8
  26. package/build/{types/packages/query-core/src → lib}/utils.d.ts +0 -0
  27. package/build/umd/index.development.js +21 -6
  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 -7
  32. package/src/index.ts +2 -2
  33. package/src/mutationCache.ts +7 -0
  34. package/src/mutationObserver.ts +9 -0
  35. package/src/queryCache.ts +7 -0
  36. package/src/queryClient.ts +10 -14
  37. package/src/queryObserver.ts +8 -0
  38. package/src/tests/queryClient.test.tsx +33 -0
  39. package/src/tests/queryObserver.test.tsx +19 -0
  40. package/src/types.ts +15 -9
  41. package/src/utils.ts +2 -0
  42. package/build/cjs/focusManager.js +0 -101
  43. package/build/cjs/focusManager.js.map +0 -1
  44. package/build/cjs/hydration.js +0 -112
  45. package/build/cjs/hydration.js.map +0 -1
  46. package/build/cjs/index.js +0 -51
  47. package/build/cjs/index.js.map +0 -1
  48. package/build/cjs/infiniteQueryBehavior.js +0 -160
  49. package/build/cjs/infiniteQueryBehavior.js.map +0 -1
  50. package/build/cjs/infiniteQueryObserver.js +0 -92
  51. package/build/cjs/infiniteQueryObserver.js.map +0 -1
  52. package/build/cjs/logger.js +0 -18
  53. package/build/cjs/logger.js.map +0 -1
  54. package/build/cjs/mutation.js +0 -258
  55. package/build/cjs/mutation.js.map +0 -1
  56. package/build/cjs/mutationCache.js +0 -99
  57. package/build/cjs/mutationCache.js.map +0 -1
  58. package/build/cjs/mutationObserver.js +0 -130
  59. package/build/cjs/mutationObserver.js.map +0 -1
  60. package/build/cjs/notifyManager.js +0 -114
  61. package/build/cjs/notifyManager.js.map +0 -1
  62. package/build/cjs/onlineManager.js +0 -100
  63. package/build/cjs/onlineManager.js.map +0 -1
  64. package/build/cjs/queriesObserver.js +0 -170
  65. package/build/cjs/queriesObserver.js.map +0 -1
  66. package/build/cjs/query.js +0 -474
  67. package/build/cjs/query.js.map +0 -1
  68. package/build/cjs/queryCache.js +0 -140
  69. package/build/cjs/queryCache.js.map +0 -1
  70. package/build/cjs/queryClient.js +0 -357
  71. package/build/cjs/queryClient.js.map +0 -1
  72. package/build/cjs/queryObserver.js +0 -521
  73. package/build/cjs/queryObserver.js.map +0 -1
  74. package/build/cjs/removable.js +0 -47
  75. package/build/cjs/removable.js.map +0 -1
  76. package/build/cjs/retryer.js +0 -177
  77. package/build/cjs/retryer.js.map +0 -1
  78. package/build/cjs/subscribable.js +0 -43
  79. package/build/cjs/subscribable.js.map +0 -1
  80. package/build/cjs/utils.js +0 -356
  81. package/build/cjs/utils.js.map +0 -1
  82. package/build/esm/index.js.map +0 -1
  83. package/build/stats-html.html +0 -2689
  84. package/build/stats.json +0 -805
  85. package/build/types/packages/query-core/src/tests/focusManager.test.d.ts +0 -1
  86. package/build/types/packages/query-core/src/tests/hydration.test.d.ts +0 -1
  87. package/build/types/packages/query-core/src/tests/infiniteQueryBehavior.test.d.ts +0 -1
  88. package/build/types/packages/query-core/src/tests/infiniteQueryObserver.test.d.ts +0 -1
  89. package/build/types/packages/query-core/src/tests/mutationCache.test.d.ts +0 -1
  90. package/build/types/packages/query-core/src/tests/mutationObserver.test.d.ts +0 -1
  91. package/build/types/packages/query-core/src/tests/mutations.test.d.ts +0 -1
  92. package/build/types/packages/query-core/src/tests/notifyManager.test.d.ts +0 -1
  93. package/build/types/packages/query-core/src/tests/onlineManager.test.d.ts +0 -1
  94. package/build/types/packages/query-core/src/tests/queriesObserver.test.d.ts +0 -1
  95. package/build/types/packages/query-core/src/tests/query.test.d.ts +0 -1
  96. package/build/types/packages/query-core/src/tests/queryCache.test.d.ts +0 -1
  97. package/build/types/packages/query-core/src/tests/queryClient.test.d.ts +0 -1
  98. package/build/types/packages/query-core/src/tests/queryObserver.test.d.ts +0 -1
  99. package/build/types/packages/query-core/src/tests/utils.test.d.ts +0 -1
  100. package/build/types/tests/utils.d.ts +0 -24
@@ -1,99 +0,0 @@
1
- /**
2
- * query-core
3
- *
4
- * Copyright (c) TanStack
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE.md file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- 'use strict';
12
-
13
- Object.defineProperty(exports, '__esModule', { value: true });
14
-
15
- var notifyManager = require('./notifyManager.js');
16
- var mutation = require('./mutation.js');
17
- var utils = require('./utils.js');
18
- var subscribable = require('./subscribable.js');
19
-
20
- // CLASS
21
- class MutationCache extends subscribable.Subscribable {
22
- constructor(config) {
23
- super();
24
- this.config = config || {};
25
- this.mutations = [];
26
- this.mutationId = 0;
27
- }
28
-
29
- build(client, options, state) {
30
- const mutation$1 = new mutation.Mutation({
31
- mutationCache: this,
32
- logger: client.getLogger(),
33
- mutationId: ++this.mutationId,
34
- options: client.defaultMutationOptions(options),
35
- state,
36
- defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined,
37
- meta: options.meta
38
- });
39
- this.add(mutation$1);
40
- return mutation$1;
41
- }
42
-
43
- add(mutation) {
44
- this.mutations.push(mutation);
45
- this.notify({
46
- type: 'added',
47
- mutation
48
- });
49
- }
50
-
51
- remove(mutation) {
52
- this.mutations = this.mutations.filter(x => x !== mutation);
53
- this.notify({
54
- type: 'removed',
55
- mutation
56
- });
57
- }
58
-
59
- clear() {
60
- notifyManager.notifyManager.batch(() => {
61
- this.mutations.forEach(mutation => {
62
- this.remove(mutation);
63
- });
64
- });
65
- }
66
-
67
- getAll() {
68
- return this.mutations;
69
- }
70
-
71
- find(filters) {
72
- if (typeof filters.exact === 'undefined') {
73
- filters.exact = true;
74
- }
75
-
76
- return this.mutations.find(mutation => utils.matchMutation(filters, mutation));
77
- }
78
-
79
- findAll(filters) {
80
- return this.mutations.filter(mutation => utils.matchMutation(filters, mutation));
81
- }
82
-
83
- notify(event) {
84
- notifyManager.notifyManager.batch(() => {
85
- this.listeners.forEach(listener => {
86
- listener(event);
87
- });
88
- });
89
- }
90
-
91
- resumePausedMutations() {
92
- const pausedMutations = this.mutations.filter(x => x.state.isPaused);
93
- return notifyManager.notifyManager.batch(() => pausedMutations.reduce((promise, mutation) => promise.then(() => mutation.continue().catch(utils.noop)), Promise.resolve()));
94
- }
95
-
96
- }
97
-
98
- exports.MutationCache = MutationCache;
99
- //# sourceMappingURL=mutationCache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mutationCache.js","sources":["../../src/mutationCache.ts"],"sourcesContent":["import { MutationObserver } from './mutationObserver'\nimport type { MutationOptions } from './types'\nimport type { QueryClient } from './queryClient'\nimport { notifyManager } from './notifyManager'\nimport { Action, Mutation, MutationState } from './mutation'\nimport { matchMutation, MutationFilters, noop } from './utils'\nimport { Subscribable } from './subscribable'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => void\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => void\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown, unknown>,\n ) => void\n}\n\ninterface NotifyEventMutationAdded {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationUpdated {\n type: 'updated'\n mutation: Mutation<any, any, any, any>\n action: Action<any, any, any, any>\n}\n\ntype MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n config: MutationCacheConfig\n\n private mutations: Mutation<any, any, any, any>[]\n private mutationId: number\n\n constructor(config?: MutationCacheConfig) {\n super()\n this.config = config || {}\n this.mutations = []\n this.mutationId = 0\n }\n\n build<TData, TError, TVariables, TContext>(\n client: QueryClient,\n options: MutationOptions<TData, TError, TVariables, TContext>,\n state?: MutationState<TData, TError, TVariables, TContext>,\n ): Mutation<TData, TError, TVariables, TContext> {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey\n ? client.getMutationDefaults(options.mutationKey)\n : undefined,\n meta: options.meta,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation<any, any, any, any>): void {\n this.mutations.push(mutation)\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation<any, any, any, any>): void {\n this.mutations = this.mutations.filter((x) => x !== mutation)\n this.notify({ type: 'removed', mutation })\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.mutations.forEach((mutation) => {\n this.remove(mutation)\n })\n })\n }\n\n getAll(): Mutation[] {\n return this.mutations\n }\n\n find<TData = unknown, TError = unknown, TVariables = any, TContext = unknown>(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.mutations.find((mutation) => matchMutation(filters, mutation))\n }\n\n findAll(filters: MutationFilters): Mutation[] {\n return this.mutations.filter((mutation) => matchMutation(filters, mutation))\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<void> {\n const pausedMutations = this.mutations.filter((x) => x.state.isPaused)\n return notifyManager.batch(() =>\n pausedMutations.reduce(\n (promise, mutation) =>\n promise.then(() => mutation.continue().catch(noop)),\n Promise.resolve(),\n ),\n )\n }\n}\n"],"names":["MutationCache","Subscribable","constructor","config","mutations","mutationId","build","client","options","state","mutation","Mutation","mutationCache","logger","getLogger","defaultMutationOptions","defaultOptions","mutationKey","getMutationDefaults","undefined","meta","add","push","notify","type","remove","filter","x","clear","notifyManager","batch","forEach","getAll","find","filters","exact","matchMutation","findAll","event","listeners","listener","resumePausedMutations","pausedMutations","isPaused","reduce","promise","then","continue","catch","noop","Promise","resolve"],"mappings":"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"}
@@ -1,130 +0,0 @@
1
- /**
2
- * query-core
3
- *
4
- * Copyright (c) TanStack
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE.md file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- 'use strict';
12
-
13
- Object.defineProperty(exports, '__esModule', { value: true });
14
-
15
- var mutation = require('./mutation.js');
16
- var notifyManager = require('./notifyManager.js');
17
- var subscribable = require('./subscribable.js');
18
-
19
- // CLASS
20
- class MutationObserver extends subscribable.Subscribable {
21
- constructor(client, options) {
22
- super();
23
- this.client = client;
24
- this.setOptions(options);
25
- this.bindMethods();
26
- this.updateResult();
27
- }
28
-
29
- bindMethods() {
30
- this.mutate = this.mutate.bind(this);
31
- this.reset = this.reset.bind(this);
32
- }
33
-
34
- setOptions(options) {
35
- this.options = this.client.defaultMutationOptions(options);
36
- }
37
-
38
- onUnsubscribe() {
39
- if (!this.listeners.length) {
40
- var _this$currentMutation;
41
-
42
- (_this$currentMutation = this.currentMutation) == null ? void 0 : _this$currentMutation.removeObserver(this);
43
- }
44
- }
45
-
46
- onMutationUpdate(action) {
47
- this.updateResult(); // Determine which callbacks to trigger
48
-
49
- const notifyOptions = {
50
- listeners: true
51
- };
52
-
53
- if (action.type === 'success') {
54
- notifyOptions.onSuccess = true;
55
- } else if (action.type === 'error') {
56
- notifyOptions.onError = true;
57
- }
58
-
59
- this.notify(notifyOptions);
60
- }
61
-
62
- getCurrentResult() {
63
- return this.currentResult;
64
- }
65
-
66
- reset() {
67
- this.currentMutation = undefined;
68
- this.updateResult();
69
- this.notify({
70
- listeners: true
71
- });
72
- }
73
-
74
- mutate(variables, options) {
75
- this.mutateOptions = options;
76
-
77
- if (this.currentMutation) {
78
- this.currentMutation.removeObserver(this);
79
- }
80
-
81
- this.currentMutation = this.client.getMutationCache().build(this.client, { ...this.options,
82
- variables: typeof variables !== 'undefined' ? variables : this.options.variables
83
- });
84
- this.currentMutation.addObserver(this);
85
- return this.currentMutation.execute();
86
- }
87
-
88
- updateResult() {
89
- const state = this.currentMutation ? this.currentMutation.state : mutation.getDefaultState();
90
- const result = { ...state,
91
- isLoading: state.status === 'loading',
92
- isSuccess: state.status === 'success',
93
- isError: state.status === 'error',
94
- isIdle: state.status === 'idle',
95
- mutate: this.mutate,
96
- reset: this.reset
97
- };
98
- this.currentResult = result;
99
- }
100
-
101
- notify(options) {
102
- notifyManager.notifyManager.batch(() => {
103
- // First trigger the mutate callbacks
104
- if (this.mutateOptions) {
105
- if (options.onSuccess) {
106
- var _this$mutateOptions$o, _this$mutateOptions, _this$mutateOptions$o2, _this$mutateOptions2;
107
-
108
- (_this$mutateOptions$o = (_this$mutateOptions = this.mutateOptions).onSuccess) == null ? void 0 : _this$mutateOptions$o.call(_this$mutateOptions, this.currentResult.data, this.currentResult.variables, this.currentResult.context);
109
- (_this$mutateOptions$o2 = (_this$mutateOptions2 = this.mutateOptions).onSettled) == null ? void 0 : _this$mutateOptions$o2.call(_this$mutateOptions2, this.currentResult.data, null, this.currentResult.variables, this.currentResult.context);
110
- } else if (options.onError) {
111
- var _this$mutateOptions$o3, _this$mutateOptions3, _this$mutateOptions$o4, _this$mutateOptions4;
112
-
113
- (_this$mutateOptions$o3 = (_this$mutateOptions3 = this.mutateOptions).onError) == null ? void 0 : _this$mutateOptions$o3.call(_this$mutateOptions3, this.currentResult.error, this.currentResult.variables, this.currentResult.context);
114
- (_this$mutateOptions$o4 = (_this$mutateOptions4 = this.mutateOptions).onSettled) == null ? void 0 : _this$mutateOptions$o4.call(_this$mutateOptions4, undefined, this.currentResult.error, this.currentResult.variables, this.currentResult.context);
115
- }
116
- } // Then trigger the listeners
117
-
118
-
119
- if (options.listeners) {
120
- this.listeners.forEach(listener => {
121
- listener(this.currentResult);
122
- });
123
- }
124
- });
125
- }
126
-
127
- }
128
-
129
- exports.MutationObserver = MutationObserver;
130
- //# sourceMappingURL=mutationObserver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mutationObserver.js","sources":["../../src/mutationObserver.ts"],"sourcesContent":["import { Action, getDefaultState, Mutation } from './mutation'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type {\n MutateOptions,\n MutationObserverBaseResult,\n MutationObserverResult,\n MutationObserverOptions,\n} from './types'\n\n// TYPES\n\ntype MutationObserverListener<TData, TError, TVariables, TContext> = (\n result: MutationObserverResult<TData, TError, TVariables, TContext>,\n) => void\n\ninterface NotifyOptions {\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\n// CLASS\n\nexport class MutationObserver<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> extends Subscribable<\n MutationObserverListener<TData, TError, TVariables, TContext>\n> {\n options!: MutationObserverOptions<TData, TError, TVariables, TContext>\n\n private client: QueryClient\n private currentResult!: MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n >\n private currentMutation?: Mutation<TData, TError, TVariables, TContext>\n private mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>\n\n constructor(\n client: QueryClient,\n options: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n super()\n\n this.client = client\n this.setOptions(options)\n this.bindMethods()\n this.updateResult()\n }\n\n protected bindMethods(): void {\n this.mutate = this.mutate.bind(this)\n this.reset = this.reset.bind(this)\n }\n\n setOptions(\n options?: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n this.options = this.client.defaultMutationOptions(options)\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.length) {\n this.currentMutation?.removeObserver(this)\n }\n }\n\n onMutationUpdate(action: Action<TData, TError, TVariables, TContext>): void {\n this.updateResult()\n\n // Determine which callbacks to trigger\n const notifyOptions: NotifyOptions = {\n listeners: true,\n }\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true\n } else if (action.type === 'error') {\n notifyOptions.onError = true\n }\n\n this.notify(notifyOptions)\n }\n\n getCurrentResult(): MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n > {\n return this.currentResult\n }\n\n reset(): void {\n this.currentMutation = undefined\n this.updateResult()\n this.notify({ listeners: true })\n }\n\n mutate(\n variables?: TVariables,\n options?: MutateOptions<TData, TError, TVariables, TContext>,\n ): Promise<TData> {\n this.mutateOptions = options\n\n if (this.currentMutation) {\n this.currentMutation.removeObserver(this)\n }\n\n this.currentMutation = this.client.getMutationCache().build(this.client, {\n ...this.options,\n variables:\n typeof variables !== 'undefined' ? variables : this.options.variables,\n })\n\n this.currentMutation.addObserver(this)\n\n return this.currentMutation.execute()\n }\n\n private updateResult(): void {\n const state = this.currentMutation\n ? this.currentMutation.state\n : getDefaultState<TData, TError, TVariables, TContext>()\n\n const result: MutationObserverBaseResult<\n TData,\n TError,\n TVariables,\n TContext\n > = {\n ...state,\n isLoading: state.status === 'loading',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset,\n }\n\n this.currentResult = result as MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n >\n }\n\n private notify(options: NotifyOptions) {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.mutateOptions) {\n if (options.onSuccess) {\n this.mutateOptions.onSuccess?.(\n this.currentResult.data!,\n this.currentResult.variables!,\n this.currentResult.context!,\n )\n this.mutateOptions.onSettled?.(\n this.currentResult.data!,\n null,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n } else if (options.onError) {\n this.mutateOptions.onError?.(\n this.currentResult.error!,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n this.mutateOptions.onSettled?.(\n undefined,\n this.currentResult.error,\n this.currentResult.variables!,\n this.currentResult.context,\n )\n }\n }\n\n // Then trigger the listeners\n if (options.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.currentResult)\n })\n }\n })\n }\n}\n"],"names":["MutationObserver","Subscribable","constructor","client","options","setOptions","bindMethods","updateResult","mutate","bind","reset","defaultMutationOptions","onUnsubscribe","listeners","length","currentMutation","removeObserver","onMutationUpdate","action","notifyOptions","type","onSuccess","onError","notify","getCurrentResult","currentResult","undefined","variables","mutateOptions","getMutationCache","build","addObserver","execute","state","getDefaultState","result","isLoading","status","isSuccess","isError","isIdle","notifyManager","batch","data","context","onSettled","error","forEach","listener"],"mappings":"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"}
@@ -1,114 +0,0 @@
1
- /**
2
- * query-core
3
- *
4
- * Copyright (c) TanStack
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE.md file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- 'use strict';
12
-
13
- Object.defineProperty(exports, '__esModule', { value: true });
14
-
15
- var utils = require('./utils.js');
16
-
17
- function createNotifyManager() {
18
- let queue = [];
19
- let transactions = 0;
20
-
21
- let notifyFn = callback => {
22
- callback();
23
- };
24
-
25
- let batchNotifyFn = callback => {
26
- callback();
27
- };
28
-
29
- const batch = callback => {
30
- let result;
31
- transactions++;
32
-
33
- try {
34
- result = callback();
35
- } finally {
36
- transactions--;
37
-
38
- if (!transactions) {
39
- flush();
40
- }
41
- }
42
-
43
- return result;
44
- };
45
-
46
- const schedule = callback => {
47
- if (transactions) {
48
- queue.push(callback);
49
- } else {
50
- utils.scheduleMicrotask(() => {
51
- notifyFn(callback);
52
- });
53
- }
54
- };
55
- /**
56
- * All calls to the wrapped function will be batched.
57
- */
58
-
59
-
60
- const batchCalls = callback => {
61
- return (...args) => {
62
- schedule(() => {
63
- callback(...args);
64
- });
65
- };
66
- };
67
-
68
- const flush = () => {
69
- const originalQueue = queue;
70
- queue = [];
71
-
72
- if (originalQueue.length) {
73
- utils.scheduleMicrotask(() => {
74
- batchNotifyFn(() => {
75
- originalQueue.forEach(callback => {
76
- notifyFn(callback);
77
- });
78
- });
79
- });
80
- }
81
- };
82
- /**
83
- * Use this method to set a custom notify function.
84
- * This can be used to for example wrap notifications with `React.act` while running tests.
85
- */
86
-
87
-
88
- const setNotifyFunction = fn => {
89
- notifyFn = fn;
90
- };
91
- /**
92
- * Use this method to set a custom function to batch notifications together into a single tick.
93
- * By default React Query will use the batch function provided by ReactDOM or React Native.
94
- */
95
-
96
-
97
- const setBatchNotifyFunction = fn => {
98
- batchNotifyFn = fn;
99
- };
100
-
101
- return {
102
- batch,
103
- batchCalls,
104
- schedule,
105
- setNotifyFunction,
106
- setBatchNotifyFunction
107
- };
108
- } // SINGLETON
109
-
110
- const notifyManager = createNotifyManager();
111
-
112
- exports.createNotifyManager = createNotifyManager;
113
- exports.notifyManager = notifyManager;
114
- //# sourceMappingURL=notifyManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notifyManager.js","sources":["../../src/notifyManager.ts"],"sourcesContent":["import { scheduleMicrotask } from './utils'\n\n// TYPES\n\ntype NotifyCallback = () => void\n\ntype NotifyFunction = (callback: () => void) => void\n\ntype BatchNotifyFunction = (callback: () => void) => void\n\nexport function createNotifyManager() {\n let queue: NotifyCallback[] = []\n let transactions = 0\n let notifyFn: NotifyFunction = (callback) => {\n callback()\n }\n let batchNotifyFn: BatchNotifyFunction = (callback: () => void) => {\n callback()\n }\n\n const batch = <T>(callback: () => T): T => {\n let result\n transactions++\n try {\n result = callback()\n } finally {\n transactions--\n if (!transactions) {\n flush()\n }\n }\n return result\n }\n\n const schedule = (callback: NotifyCallback): void => {\n if (transactions) {\n queue.push(callback)\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback)\n })\n }\n }\n\n /**\n * All calls to the wrapped function will be batched.\n */\n const batchCalls = <T extends Function>(callback: T): T => {\n return ((...args: any[]) => {\n schedule(() => {\n callback(...args)\n })\n }) as any\n }\n\n const flush = (): void => {\n const originalQueue = queue\n queue = []\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback)\n })\n })\n })\n }\n }\n\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n const setNotifyFunction = (fn: NotifyFunction) => {\n notifyFn = fn\n }\n\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n const setBatchNotifyFunction = (fn: BatchNotifyFunction) => {\n batchNotifyFn = fn\n }\n\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction,\n } as const\n}\n\n// SINGLETON\nexport const notifyManager = createNotifyManager()\n"],"names":["createNotifyManager","queue","transactions","notifyFn","callback","batchNotifyFn","batch","result","flush","schedule","push","scheduleMicrotask","batchCalls","args","originalQueue","length","forEach","setNotifyFunction","fn","setBatchNotifyFunction","notifyManager"],"mappings":";;;;;;;;;;;;;;;;AAUO,SAASA,mBAAT,GAA+B;EACpC,IAAIC,KAAuB,GAAG,EAA9B,CAAA;EACA,IAAIC,YAAY,GAAG,CAAnB,CAAA;;EACA,IAAIC,QAAwB,GAAIC,QAAD,IAAc;IAC3CA,QAAQ,EAAA,CAAA;GADV,CAAA;;EAGA,IAAIC,aAAkC,GAAID,QAAD,IAA0B;IACjEA,QAAQ,EAAA,CAAA;GADV,CAAA;;EAIA,MAAME,KAAK,GAAOF,QAAJ,IAA6B;AACzC,IAAA,IAAIG,MAAJ,CAAA;IACAL,YAAY,EAAA,CAAA;;IACZ,IAAI;MACFK,MAAM,GAAGH,QAAQ,EAAjB,CAAA;AACD,KAFD,SAEU;MACRF,YAAY,EAAA,CAAA;;MACZ,IAAI,CAACA,YAAL,EAAmB;QACjBM,KAAK,EAAA,CAAA;AACN,OAAA;AACF,KAAA;;AACD,IAAA,OAAOD,MAAP,CAAA;GAXF,CAAA;;EAcA,MAAME,QAAQ,GAAIL,QAAD,IAAoC;AACnD,IAAA,IAAIF,YAAJ,EAAkB;MAChBD,KAAK,CAACS,IAAN,CAAWN,QAAX,CAAA,CAAA;AACD,KAFD,MAEO;AACLO,MAAAA,uBAAiB,CAAC,MAAM;QACtBR,QAAQ,CAACC,QAAD,CAAR,CAAA;AACD,OAFgB,CAAjB,CAAA;AAGD,KAAA;GAPH,CAAA;AAUA;AACF;AACA;;;EACE,MAAMQ,UAAU,GAAwBR,QAArB,IAAwC;IACzD,OAAQ,CAAC,GAAGS,IAAJ,KAAoB;AAC1BJ,MAAAA,QAAQ,CAAC,MAAM;QACbL,QAAQ,CAAC,GAAGS,IAAJ,CAAR,CAAA;AACD,OAFO,CAAR,CAAA;KADF,CAAA;GADF,CAAA;;EAQA,MAAML,KAAK,GAAG,MAAY;IACxB,MAAMM,aAAa,GAAGb,KAAtB,CAAA;AACAA,IAAAA,KAAK,GAAG,EAAR,CAAA;;IACA,IAAIa,aAAa,CAACC,MAAlB,EAA0B;AACxBJ,MAAAA,uBAAiB,CAAC,MAAM;AACtBN,QAAAA,aAAa,CAAC,MAAM;AAClBS,UAAAA,aAAa,CAACE,OAAd,CAAuBZ,QAAD,IAAc;YAClCD,QAAQ,CAACC,QAAD,CAAR,CAAA;WADF,CAAA,CAAA;AAGD,SAJY,CAAb,CAAA;AAKD,OANgB,CAAjB,CAAA;AAOD,KAAA;GAXH,CAAA;AAcA;AACF;AACA;AACA;;;EACE,MAAMa,iBAAiB,GAAIC,EAAD,IAAwB;AAChDf,IAAAA,QAAQ,GAAGe,EAAX,CAAA;GADF,CAAA;AAIA;AACF;AACA;AACA;;;EACE,MAAMC,sBAAsB,GAAID,EAAD,IAA6B;AAC1Db,IAAAA,aAAa,GAAGa,EAAhB,CAAA;GADF,CAAA;;EAIA,OAAO;IACLZ,KADK;IAELM,UAFK;IAGLH,QAHK;IAILQ,iBAJK;AAKLE,IAAAA,sBAAAA;GALF,CAAA;AAOD;;AAGYC,MAAAA,aAAa,GAAGpB,mBAAmB;;;;;"}
@@ -1,100 +0,0 @@
1
- /**
2
- * query-core
3
- *
4
- * Copyright (c) TanStack
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE.md file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- 'use strict';
12
-
13
- Object.defineProperty(exports, '__esModule', { value: true });
14
-
15
- var subscribable = require('./subscribable.js');
16
- var utils = require('./utils.js');
17
-
18
- class OnlineManager extends subscribable.Subscribable {
19
- constructor() {
20
- super();
21
-
22
- this.setup = onOnline => {
23
- // addEventListener does not exist in React Native, but window does
24
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
25
- if (!utils.isServer && window.addEventListener) {
26
- const listener = () => onOnline(); // Listen to online
27
-
28
-
29
- window.addEventListener('online', listener, false);
30
- window.addEventListener('offline', listener, false);
31
- return () => {
32
- // Be sure to unsubscribe if a new handler is set
33
- window.removeEventListener('online', listener);
34
- window.removeEventListener('offline', listener);
35
- };
36
- }
37
- };
38
- }
39
-
40
- onSubscribe() {
41
- if (!this.cleanup) {
42
- this.setEventListener(this.setup);
43
- }
44
- }
45
-
46
- onUnsubscribe() {
47
- if (!this.hasListeners()) {
48
- var _this$cleanup;
49
-
50
- (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);
51
- this.cleanup = undefined;
52
- }
53
- }
54
-
55
- setEventListener(setup) {
56
- var _this$cleanup2;
57
-
58
- this.setup = setup;
59
- (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);
60
- this.cleanup = setup(online => {
61
- if (typeof online === 'boolean') {
62
- this.setOnline(online);
63
- } else {
64
- this.onOnline();
65
- }
66
- });
67
- }
68
-
69
- setOnline(online) {
70
- this.online = online;
71
-
72
- if (online) {
73
- this.onOnline();
74
- }
75
- }
76
-
77
- onOnline() {
78
- this.listeners.forEach(listener => {
79
- listener();
80
- });
81
- }
82
-
83
- isOnline() {
84
- if (typeof this.online === 'boolean') {
85
- return this.online;
86
- }
87
-
88
- if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {
89
- return true;
90
- }
91
-
92
- return navigator.onLine;
93
- }
94
-
95
- }
96
- const onlineManager = new OnlineManager();
97
-
98
- exports.OnlineManager = OnlineManager;
99
- exports.onlineManager = onlineManager;
100
- //# sourceMappingURL=onlineManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"onlineManager.js","sources":["../../src/onlineManager.ts"],"sourcesContent":["import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype SetupFn = (\n setOnline: (online?: boolean) => void,\n) => (() => void) | undefined\n\nexport class OnlineManager extends Subscribable {\n private online?: boolean\n private cleanup?: () => void\n\n private setup: SetupFn\n\n constructor() {\n super()\n this.setup = (onOnline) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline()\n // Listen to online\n window.addEventListener('online', listener, false)\n window.addEventListener('offline', listener, false)\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener)\n window.removeEventListener('offline', listener)\n }\n }\n }\n }\n\n protected onSubscribe(): void {\n if (!this.cleanup) {\n this.setEventListener(this.setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.cleanup?.()\n this.cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.setup = setup\n this.cleanup?.()\n this.cleanup = setup((online?: boolean) => {\n if (typeof online === 'boolean') {\n this.setOnline(online)\n } else {\n this.onOnline()\n }\n })\n }\n\n setOnline(online?: boolean): void {\n this.online = online\n\n if (online) {\n this.onOnline()\n }\n }\n\n onOnline(): void {\n this.listeners.forEach((listener) => {\n listener()\n })\n }\n\n isOnline(): boolean {\n if (typeof this.online === 'boolean') {\n return this.online\n }\n\n if (\n typeof navigator === 'undefined' ||\n typeof navigator.onLine === 'undefined'\n ) {\n return true\n }\n\n return navigator.onLine\n }\n}\n\nexport const onlineManager = new OnlineManager()\n"],"names":["OnlineManager","Subscribable","constructor","setup","onOnline","isServer","window","addEventListener","listener","removeEventListener","onSubscribe","cleanup","setEventListener","onUnsubscribe","hasListeners","undefined","online","setOnline","listeners","forEach","isOnline","navigator","onLine","onlineManager"],"mappings":"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"}
@@ -1,170 +0,0 @@
1
- /**
2
- * query-core
3
- *
4
- * Copyright (c) TanStack
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE.md file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- 'use strict';
12
-
13
- Object.defineProperty(exports, '__esModule', { value: true });
14
-
15
- var utils = require('./utils.js');
16
- var notifyManager = require('./notifyManager.js');
17
- var queryObserver = require('./queryObserver.js');
18
- var subscribable = require('./subscribable.js');
19
-
20
- class QueriesObserver extends subscribable.Subscribable {
21
- constructor(client, queries) {
22
- super();
23
- this.client = client;
24
- this.queries = [];
25
- this.result = [];
26
- this.observers = [];
27
- this.observersMap = {};
28
-
29
- if (queries) {
30
- this.setQueries(queries);
31
- }
32
- }
33
-
34
- onSubscribe() {
35
- if (this.listeners.length === 1) {
36
- this.observers.forEach(observer => {
37
- observer.subscribe(result => {
38
- this.onUpdate(observer, result);
39
- });
40
- });
41
- }
42
- }
43
-
44
- onUnsubscribe() {
45
- if (!this.listeners.length) {
46
- this.destroy();
47
- }
48
- }
49
-
50
- destroy() {
51
- this.listeners = [];
52
- this.observers.forEach(observer => {
53
- observer.destroy();
54
- });
55
- }
56
-
57
- setQueries(queries, notifyOptions) {
58
- this.queries = queries;
59
- notifyManager.notifyManager.batch(() => {
60
- const prevObservers = this.observers;
61
- const newObserverMatches = this.findMatchingObservers(this.queries); // set options for the new observers to notify of changes
62
-
63
- newObserverMatches.forEach(match => match.observer.setOptions(match.defaultedQueryOptions, notifyOptions));
64
- const newObservers = newObserverMatches.map(match => match.observer);
65
- const newObserversMap = Object.fromEntries(newObservers.map(observer => [observer.options.queryHash, observer]));
66
- const newResult = newObservers.map(observer => observer.getCurrentResult());
67
- const hasIndexChange = newObservers.some((observer, index) => observer !== prevObservers[index]);
68
-
69
- if (prevObservers.length === newObservers.length && !hasIndexChange) {
70
- return;
71
- }
72
-
73
- this.observers = newObservers;
74
- this.observersMap = newObserversMap;
75
- this.result = newResult;
76
-
77
- if (!this.hasListeners()) {
78
- return;
79
- }
80
-
81
- utils.difference(prevObservers, newObservers).forEach(observer => {
82
- observer.destroy();
83
- });
84
- utils.difference(newObservers, prevObservers).forEach(observer => {
85
- observer.subscribe(result => {
86
- this.onUpdate(observer, result);
87
- });
88
- });
89
- this.notify();
90
- });
91
- }
92
-
93
- getCurrentResult() {
94
- return this.result;
95
- }
96
-
97
- getOptimisticResult(queries) {
98
- return this.findMatchingObservers(queries).map(match => match.observer.getOptimisticResult(match.defaultedQueryOptions));
99
- }
100
-
101
- findMatchingObservers(queries) {
102
- const prevObservers = this.observers;
103
- const defaultedQueryOptions = queries.map(options => this.client.defaultQueryOptions(options));
104
- const matchingObservers = defaultedQueryOptions.flatMap(defaultedOptions => {
105
- const match = prevObservers.find(observer => observer.options.queryHash === defaultedOptions.queryHash);
106
-
107
- if (match != null) {
108
- return [{
109
- defaultedQueryOptions: defaultedOptions,
110
- observer: match
111
- }];
112
- }
113
-
114
- return [];
115
- });
116
- const matchedQueryHashes = matchingObservers.map(match => match.defaultedQueryOptions.queryHash);
117
- const unmatchedQueries = defaultedQueryOptions.filter(defaultedOptions => !matchedQueryHashes.includes(defaultedOptions.queryHash));
118
- const unmatchedObservers = prevObservers.filter(prevObserver => !matchingObservers.some(match => match.observer === prevObserver));
119
-
120
- const getObserver = options => {
121
- const defaultedOptions = this.client.defaultQueryOptions(options);
122
- const currentObserver = this.observersMap[defaultedOptions.queryHash];
123
- return currentObserver != null ? currentObserver : new queryObserver.QueryObserver(this.client, defaultedOptions);
124
- };
125
-
126
- const newOrReusedObservers = unmatchedQueries.map((options, index) => {
127
- if (options.keepPreviousData) {
128
- // return previous data from one of the observers that no longer match
129
- const previouslyUsedObserver = unmatchedObservers[index];
130
-
131
- if (previouslyUsedObserver !== undefined) {
132
- return {
133
- defaultedQueryOptions: options,
134
- observer: previouslyUsedObserver
135
- };
136
- }
137
- }
138
-
139
- return {
140
- defaultedQueryOptions: options,
141
- observer: getObserver(options)
142
- };
143
- });
144
-
145
- const sortMatchesByOrderOfQueries = (a, b) => defaultedQueryOptions.indexOf(a.defaultedQueryOptions) - defaultedQueryOptions.indexOf(b.defaultedQueryOptions);
146
-
147
- return matchingObservers.concat(newOrReusedObservers).sort(sortMatchesByOrderOfQueries);
148
- }
149
-
150
- onUpdate(observer, result) {
151
- const index = this.observers.indexOf(observer);
152
-
153
- if (index !== -1) {
154
- this.result = utils.replaceAt(this.result, index, result);
155
- this.notify();
156
- }
157
- }
158
-
159
- notify() {
160
- notifyManager.notifyManager.batch(() => {
161
- this.listeners.forEach(listener => {
162
- listener(this.result);
163
- });
164
- });
165
- }
166
-
167
- }
168
-
169
- exports.QueriesObserver = QueriesObserver;
170
- //# sourceMappingURL=queriesObserver.js.map