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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/build/lib/_virtual/_rollupPluginBabelHelpers.esm.js +13 -0
  2. package/build/lib/_virtual/_rollupPluginBabelHelpers.esm.js.map +1 -0
  3. package/build/lib/_virtual/_rollupPluginBabelHelpers.js +16 -0
  4. package/build/lib/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  5. package/build/lib/focusManager.d.ts +1 -0
  6. package/build/lib/focusManager.d.ts.map +1 -0
  7. package/build/lib/focusManager.esm.js +31 -15
  8. package/build/lib/focusManager.esm.js.map +1 -1
  9. package/build/lib/focusManager.js +31 -15
  10. package/build/lib/focusManager.js.map +1 -1
  11. package/build/lib/hydration.d.ts +3 -6
  12. package/build/lib/hydration.d.ts.map +1 -0
  13. package/build/lib/hydration.esm.js +9 -20
  14. package/build/lib/hydration.esm.js.map +1 -1
  15. package/build/lib/hydration.js +9 -20
  16. package/build/lib/hydration.js.map +1 -1
  17. package/build/lib/hydration.mjs +4 -18
  18. package/build/lib/hydration.mjs.map +1 -1
  19. package/build/lib/index.d.ts +4 -3
  20. package/build/lib/index.d.ts.map +1 -0
  21. package/build/lib/infiniteQueryBehavior.d.ts +3 -2
  22. package/build/lib/infiniteQueryBehavior.d.ts.map +1 -0
  23. package/build/lib/infiniteQueryBehavior.esm.js +52 -48
  24. package/build/lib/infiniteQueryBehavior.esm.js.map +1 -1
  25. package/build/lib/infiniteQueryBehavior.js +52 -48
  26. package/build/lib/infiniteQueryBehavior.js.map +1 -1
  27. package/build/lib/infiniteQueryBehavior.mjs +48 -45
  28. package/build/lib/infiniteQueryBehavior.mjs.map +1 -1
  29. package/build/lib/infiniteQueryObserver.d.ts +7 -6
  30. package/build/lib/infiniteQueryObserver.d.ts.map +1 -0
  31. package/build/lib/infiniteQueryObserver.esm.js +7 -8
  32. package/build/lib/infiniteQueryObserver.esm.js.map +1 -1
  33. package/build/lib/infiniteQueryObserver.js +7 -8
  34. package/build/lib/infiniteQueryObserver.js.map +1 -1
  35. package/build/lib/infiniteQueryObserver.mjs +4 -6
  36. package/build/lib/infiniteQueryObserver.mjs.map +1 -1
  37. package/build/lib/mutation.d.ts +1 -0
  38. package/build/lib/mutation.d.ts.map +1 -0
  39. package/build/lib/mutation.esm.js +127 -102
  40. package/build/lib/mutation.esm.js.map +1 -1
  41. package/build/lib/mutation.js +127 -102
  42. package/build/lib/mutation.js.map +1 -1
  43. package/build/lib/mutationCache.d.ts +1 -0
  44. package/build/lib/mutationCache.d.ts.map +1 -0
  45. package/build/lib/mutationCache.esm.js +34 -20
  46. package/build/lib/mutationCache.esm.js.map +1 -1
  47. package/build/lib/mutationCache.js +34 -20
  48. package/build/lib/mutationCache.js.map +1 -1
  49. package/build/lib/mutationCache.mjs +5 -4
  50. package/build/lib/mutationCache.mjs.map +1 -1
  51. package/build/lib/mutationObserver.d.ts +1 -0
  52. package/build/lib/mutationObserver.d.ts.map +1 -0
  53. package/build/lib/mutationObserver.esm.js +82 -52
  54. package/build/lib/mutationObserver.esm.js.map +1 -1
  55. package/build/lib/mutationObserver.js +82 -52
  56. package/build/lib/mutationObserver.js.map +1 -1
  57. package/build/lib/mutationObserver.mjs +1 -1
  58. package/build/lib/mutationObserver.mjs.map +1 -1
  59. package/build/lib/notifyManager.d.ts +1 -0
  60. package/build/lib/notifyManager.d.ts.map +1 -0
  61. package/build/lib/onlineManager.d.ts +1 -0
  62. package/build/lib/onlineManager.d.ts.map +1 -0
  63. package/build/lib/onlineManager.esm.js +29 -14
  64. package/build/lib/onlineManager.esm.js.map +1 -1
  65. package/build/lib/onlineManager.js +29 -14
  66. package/build/lib/onlineManager.js.map +1 -1
  67. package/build/lib/queriesObserver.d.ts +1 -0
  68. package/build/lib/queriesObserver.d.ts.map +1 -0
  69. package/build/lib/queriesObserver.esm.js +98 -68
  70. package/build/lib/queriesObserver.esm.js.map +1 -1
  71. package/build/lib/queriesObserver.js +98 -68
  72. package/build/lib/queriesObserver.js.map +1 -1
  73. package/build/lib/queriesObserver.mjs +7 -6
  74. package/build/lib/queriesObserver.mjs.map +1 -1
  75. package/build/lib/query.d.ts +5 -3
  76. package/build/lib/query.d.ts.map +1 -0
  77. package/build/lib/query.esm.js +211 -162
  78. package/build/lib/query.esm.js.map +1 -1
  79. package/build/lib/query.js +211 -162
  80. package/build/lib/query.js.map +1 -1
  81. package/build/lib/query.mjs +2 -2
  82. package/build/lib/query.mjs.map +1 -1
  83. package/build/lib/queryCache.d.ts +1 -1
  84. package/build/lib/queryCache.d.ts.map +1 -0
  85. package/build/lib/queryCache.esm.js +20 -13
  86. package/build/lib/queryCache.esm.js.map +1 -1
  87. package/build/lib/queryCache.js +20 -13
  88. package/build/lib/queryCache.js.map +1 -1
  89. package/build/lib/queryCache.mjs +6 -5
  90. package/build/lib/queryCache.mjs.map +1 -1
  91. package/build/lib/queryClient.d.ts +1 -0
  92. package/build/lib/queryClient.d.ts.map +1 -0
  93. package/build/lib/queryClient.esm.js +113 -71
  94. package/build/lib/queryClient.esm.js.map +1 -1
  95. package/build/lib/queryClient.js +113 -71
  96. package/build/lib/queryClient.js.map +1 -1
  97. package/build/lib/queryClient.mjs +17 -13
  98. package/build/lib/queryClient.mjs.map +1 -1
  99. package/build/lib/queryObserver.d.ts +3 -4
  100. package/build/lib/queryObserver.d.ts.map +1 -0
  101. package/build/lib/queryObserver.esm.js +303 -214
  102. package/build/lib/queryObserver.esm.js.map +1 -1
  103. package/build/lib/queryObserver.js +301 -212
  104. package/build/lib/queryObserver.js.map +1 -1
  105. package/build/lib/queryObserver.mjs +16 -28
  106. package/build/lib/queryObserver.mjs.map +1 -1
  107. package/build/lib/removable.d.ts +1 -0
  108. package/build/lib/removable.d.ts.map +1 -0
  109. package/build/lib/removable.esm.js +13 -6
  110. package/build/lib/removable.esm.js.map +1 -1
  111. package/build/lib/removable.js +13 -6
  112. package/build/lib/removable.js.map +1 -1
  113. package/build/lib/retryer.d.ts +1 -0
  114. package/build/lib/retryer.d.ts.map +1 -0
  115. package/build/lib/retryer.esm.js +15 -14
  116. package/build/lib/retryer.esm.js.map +1 -1
  117. package/build/lib/retryer.js +15 -14
  118. package/build/lib/retryer.js.map +1 -1
  119. package/build/lib/subscribable.d.ts +2 -1
  120. package/build/lib/subscribable.d.ts.map +1 -0
  121. package/build/lib/subscribable.esm.js +4 -4
  122. package/build/lib/subscribable.esm.js.map +1 -1
  123. package/build/lib/subscribable.js +4 -4
  124. package/build/lib/subscribable.js.map +1 -1
  125. package/build/lib/subscribable.mjs +4 -4
  126. package/build/lib/subscribable.mjs.map +1 -1
  127. package/build/lib/tests/focusManager.test.d.ts +1 -0
  128. package/build/lib/tests/focusManager.test.d.ts.map +1 -0
  129. package/build/lib/tests/hydration.test.d.ts +1 -0
  130. package/build/lib/tests/hydration.test.d.ts.map +1 -0
  131. package/build/lib/tests/infiniteQueryBehavior.test.d.ts +1 -0
  132. package/build/lib/tests/infiniteQueryBehavior.test.d.ts.map +1 -0
  133. package/build/lib/tests/infiniteQueryObserver.test.d.ts +1 -0
  134. package/build/lib/tests/infiniteQueryObserver.test.d.ts.map +1 -0
  135. package/build/lib/tests/mutationCache.test.d.ts +1 -0
  136. package/build/lib/tests/mutationCache.test.d.ts.map +1 -0
  137. package/build/lib/tests/mutationObserver.test.d.ts +1 -0
  138. package/build/lib/tests/mutationObserver.test.d.ts.map +1 -0
  139. package/build/lib/tests/mutations.test.d.ts +1 -0
  140. package/build/lib/tests/mutations.test.d.ts.map +1 -0
  141. package/build/lib/tests/notifyManager.test.d.ts +1 -0
  142. package/build/lib/tests/notifyManager.test.d.ts.map +1 -0
  143. package/build/lib/tests/onlineManager.test.d.ts +1 -0
  144. package/build/lib/tests/onlineManager.test.d.ts.map +1 -0
  145. package/build/lib/tests/queriesObserver.test.d.ts +1 -0
  146. package/build/lib/tests/queriesObserver.test.d.ts.map +1 -0
  147. package/build/lib/tests/query.test.d.ts +1 -0
  148. package/build/lib/tests/query.test.d.ts.map +1 -0
  149. package/build/lib/tests/queryCache.test.d.ts +1 -0
  150. package/build/lib/tests/queryCache.test.d.ts.map +1 -0
  151. package/build/lib/tests/queryClient.test.d.ts +1 -0
  152. package/build/lib/tests/queryClient.test.d.ts.map +1 -0
  153. package/build/lib/tests/queryObserver.test.d.ts +1 -0
  154. package/build/lib/tests/queryObserver.test.d.ts.map +1 -0
  155. package/build/lib/tests/utils.d.ts +5 -5
  156. package/build/lib/tests/utils.d.ts.map +1 -0
  157. package/build/lib/tests/utils.test.d.ts +1 -0
  158. package/build/lib/tests/utils.test.d.ts.map +1 -0
  159. package/build/lib/types.d.ts +12 -21
  160. package/build/lib/types.d.ts.map +1 -0
  161. package/build/lib/utils.d.ts +1 -0
  162. package/build/lib/utils.d.ts.map +1 -0
  163. package/build/lib/utils.esm.js +1 -1
  164. package/build/lib/utils.esm.js.map +1 -1
  165. package/build/lib/utils.js +1 -1
  166. package/build/lib/utils.js.map +1 -1
  167. package/build/umd/index.development.js +113 -131
  168. package/build/umd/index.development.js.map +1 -1
  169. package/build/umd/index.production.js +1 -1
  170. package/build/umd/index.production.js.map +1 -1
  171. package/package.json +2 -2
  172. package/src/hydration.ts +18 -37
  173. package/src/index.ts +2 -4
  174. package/src/infiniteQueryBehavior.ts +52 -60
  175. package/src/infiniteQueryObserver.ts +15 -10
  176. package/src/mutationCache.ts +4 -4
  177. package/src/mutationObserver.ts +1 -1
  178. package/src/queriesObserver.ts +11 -11
  179. package/src/query.ts +8 -6
  180. package/src/queryCache.ts +5 -8
  181. package/src/queryClient.ts +18 -19
  182. package/src/queryObserver.ts +32 -41
  183. package/src/subscribable.ts +5 -5
  184. package/src/tests/focusManager.test.tsx +12 -14
  185. package/src/tests/hydration.test.tsx +22 -17
  186. package/src/tests/infiniteQueryBehavior.test.tsx +16 -9
  187. package/src/tests/infiniteQueryObserver.test.tsx +62 -1
  188. package/src/tests/mutationCache.test.tsx +11 -10
  189. package/src/tests/mutationObserver.test.tsx +3 -2
  190. package/src/tests/mutations.test.tsx +11 -10
  191. package/src/tests/notifyManager.test.tsx +7 -6
  192. package/src/tests/onlineManager.test.tsx +12 -17
  193. package/src/tests/queriesObserver.test.tsx +18 -17
  194. package/src/tests/query.test.tsx +19 -18
  195. package/src/tests/queryCache.test.tsx +12 -28
  196. package/src/tests/queryClient.test.tsx +82 -49
  197. package/src/tests/queryObserver.test.tsx +131 -9
  198. package/src/tests/utils.test.tsx +2 -1
  199. package/src/tests/utils.ts +5 -4
  200. package/src/types.ts +22 -20
@@ -1,28 +1,40 @@
1
1
  'use strict';
2
2
 
3
+ var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
3
4
  var notifyManager = require('./notifyManager.js');
4
5
  var mutation = require('./mutation.js');
5
6
  var utils = require('./utils.js');
6
7
  var subscribable = require('./subscribable.js');
7
8
 
8
9
  // TYPES
9
-
10
+ var _mutations = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("mutations");
11
+ var _mutationId = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("mutationId");
12
+ var _resuming = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("resuming");
10
13
  // CLASS
11
14
 
12
15
  class MutationCache extends subscribable.Subscribable {
13
- #mutations;
14
- #mutationId;
15
- #resuming;
16
16
  constructor(config = {}) {
17
17
  super();
18
+ Object.defineProperty(this, _mutations, {
19
+ writable: true,
20
+ value: void 0
21
+ });
22
+ Object.defineProperty(this, _mutationId, {
23
+ writable: true,
24
+ value: void 0
25
+ });
26
+ Object.defineProperty(this, _resuming, {
27
+ writable: true,
28
+ value: void 0
29
+ });
18
30
  this.config = config;
19
- this.#mutations = [];
20
- this.#mutationId = 0;
31
+ _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutations)[_mutations] = [];
32
+ _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutationId)[_mutationId] = 0;
21
33
  }
22
34
  build(client, options, state) {
23
35
  const mutation$1 = new mutation.Mutation({
24
36
  mutationCache: this,
25
- mutationId: ++this.#mutationId,
37
+ mutationId: ++_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutationId)[_mutationId],
26
38
  options: client.defaultMutationOptions(options),
27
39
  state
28
40
  });
@@ -30,14 +42,14 @@ class MutationCache extends subscribable.Subscribable {
30
42
  return mutation$1;
31
43
  }
32
44
  add(mutation) {
33
- this.#mutations.push(mutation);
45
+ _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutations)[_mutations].push(mutation);
34
46
  this.notify({
35
47
  type: 'added',
36
48
  mutation
37
49
  });
38
50
  }
39
51
  remove(mutation) {
40
- this.#mutations = this.#mutations.filter(x => x !== mutation);
52
+ _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutations)[_mutations] = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutations)[_mutations].filter(x => x !== mutation);
41
53
  this.notify({
42
54
  type: 'removed',
43
55
  mutation
@@ -45,22 +57,23 @@ class MutationCache extends subscribable.Subscribable {
45
57
  }
46
58
  clear() {
47
59
  notifyManager.notifyManager.batch(() => {
48
- this.#mutations.forEach(mutation => {
60
+ _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutations)[_mutations].forEach(mutation => {
49
61
  this.remove(mutation);
50
62
  });
51
63
  });
52
64
  }
53
65
  getAll() {
54
- return this.#mutations;
66
+ return _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutations)[_mutations];
55
67
  }
56
68
  find(filters) {
57
- if (typeof filters.exact === 'undefined') {
58
- filters.exact = true;
59
- }
60
- return this.#mutations.find(mutation => utils.matchMutation(filters, mutation));
69
+ const defaultedFilters = {
70
+ exact: true,
71
+ ...filters
72
+ };
73
+ return _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutations)[_mutations].find(mutation => utils.matchMutation(defaultedFilters, mutation));
61
74
  }
62
75
  findAll(filters = {}) {
63
- return this.#mutations.filter(mutation => utils.matchMutation(filters, mutation));
76
+ return _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutations)[_mutations].filter(mutation => utils.matchMutation(filters, mutation));
64
77
  }
65
78
  notify(event) {
66
79
  notifyManager.notifyManager.batch(() => {
@@ -70,13 +83,14 @@ class MutationCache extends subscribable.Subscribable {
70
83
  });
71
84
  }
72
85
  resumePausedMutations() {
73
- this.#resuming = (this.#resuming ?? Promise.resolve()).then(() => {
74
- const pausedMutations = this.#mutations.filter(x => x.state.isPaused);
86
+ var _classPrivateFieldLoo;
87
+ _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _resuming)[_resuming] = ((_classPrivateFieldLoo = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _resuming)[_resuming]) != null ? _classPrivateFieldLoo : Promise.resolve()).then(() => {
88
+ const pausedMutations = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutations)[_mutations].filter(x => x.state.isPaused);
75
89
  return notifyManager.notifyManager.batch(() => pausedMutations.reduce((promise, mutation) => promise.then(() => mutation.continue().catch(utils.noop)), Promise.resolve()));
76
90
  }).then(() => {
77
- this.#resuming = undefined;
91
+ _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _resuming)[_resuming] = undefined;
78
92
  });
79
- return this.#resuming;
93
+ return _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _resuming)[_resuming];
80
94
  }
81
95
  }
82
96
 
@@ -1 +1 @@
1
- {"version":3,"file":"mutationCache.js","sources":["../../src/mutationCache.ts"],"sourcesContent":["import type { MutationObserver } from './mutationObserver'\nimport type { NotifyEvent, MutationOptions, DefaultError } from './types'\nimport type { QueryClient } from './queryClient'\nimport { notifyManager } from './notifyManager'\nimport type { Action, MutationState } from './mutation'\nimport { Mutation } from './mutation'\nimport type { MutationFilters } from './utils'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: DefaultError,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\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 | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n #mutations: Mutation<any, any, any, any>[]\n #mutationId: number\n #resuming: Promise<unknown> | undefined\n\n constructor(public config: MutationCacheConfig = {}) {\n super()\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 mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state,\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<\n TData = unknown,\n TError = DefaultError,\n TVariables = any,\n TContext = unknown,\n >(\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) =>\n matchMutation(filters, mutation),\n )\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<unknown> {\n this.#resuming = (this.#resuming ?? Promise.resolve())\n .then(() => {\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() as Promise<unknown>,\n ),\n )\n })\n .then(() => {\n this.#resuming = undefined\n })\n\n return this.#resuming\n }\n}\n"],"names":["MutationCache","Subscribable","constructor","config","build","client","options","state","mutation","Mutation","mutationCache","mutationId","defaultMutationOptions","add","push","notify","type","remove","filter","x","clear","notifyManager","batch","forEach","getAll","find","filters","exact","matchMutation","findAll","event","listeners","listener","resumePausedMutations","Promise","resolve","then","pausedMutations","isPaused","reduce","promise","continue","catch","noop","undefined"],"mappings":"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"}
1
+ {"version":3,"file":"mutationCache.js","sources":["../../src/mutationCache.ts"],"sourcesContent":["import type { MutationObserver } from './mutationObserver'\nimport type { NotifyEvent, MutationOptions, DefaultError } from './types'\nimport type { QueryClient } from './queryClient'\nimport { notifyManager } from './notifyManager'\nimport type { Action, MutationState } from './mutation'\nimport { Mutation } from './mutation'\nimport type { MutationFilters } from './utils'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: DefaultError,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\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 | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n #mutations: Mutation<any, any, any, any>[]\n #mutationId: number\n #resuming: Promise<unknown> | undefined\n\n constructor(public config: MutationCacheConfig = {}) {\n super()\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 mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state,\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<\n TData = unknown,\n TError = DefaultError,\n TVariables = any,\n TContext = unknown,\n >(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n const defaultedFilters = { exact: true, ...filters }\n\n return this.#mutations.find((mutation) =>\n matchMutation(defaultedFilters, mutation),\n )\n }\n\n findAll(filters: MutationFilters = {}): Mutation[] {\n return this.#mutations.filter((mutation) =>\n matchMutation(filters, mutation),\n )\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<unknown> {\n this.#resuming = (this.#resuming ?? Promise.resolve())\n .then(() => {\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() as Promise<unknown>,\n ),\n )\n })\n .then(() => {\n this.#resuming = undefined\n })\n\n return this.#resuming\n }\n}\n"],"names":["_classPrivateFieldLooseKey","MutationCache","Subscribable","constructor","config","_classPrivateFieldLooseBase","build","client","options","state","mutation","Mutation","mutationCache","mutationId","defaultMutationOptions","add","push","notify","type","remove","filter","x","clear","notifyManager","batch","forEach","getAll","find","filters","defaultedFilters","exact","matchMutation","findAll","event","listeners","listener","resumePausedMutations","Promise","resolve","then","pausedMutations","isPaused","reduce","promise","continue","catch","noop","undefined"],"mappings":"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"}
@@ -52,10 +52,11 @@ class MutationCache extends Subscribable {
52
52
  return this.#mutations;
53
53
  }
54
54
  find(filters) {
55
- if (typeof filters.exact === 'undefined') {
56
- filters.exact = true;
57
- }
58
- return this.#mutations.find(mutation => matchMutation(filters, mutation));
55
+ const defaultedFilters = {
56
+ exact: true,
57
+ ...filters
58
+ };
59
+ return this.#mutations.find(mutation => matchMutation(defaultedFilters, mutation));
59
60
  }
60
61
  findAll(filters = {}) {
61
62
  return this.#mutations.filter(mutation => matchMutation(filters, mutation));
@@ -1 +1 @@
1
- {"version":3,"file":"mutationCache.mjs","sources":["../../src/mutationCache.ts"],"sourcesContent":["import type { MutationObserver } from './mutationObserver'\nimport type { NotifyEvent, MutationOptions, DefaultError } from './types'\nimport type { QueryClient } from './queryClient'\nimport { notifyManager } from './notifyManager'\nimport type { Action, MutationState } from './mutation'\nimport { Mutation } from './mutation'\nimport type { MutationFilters } from './utils'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: DefaultError,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\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 | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n #mutations: Mutation<any, any, any, any>[]\n #mutationId: number\n #resuming: Promise<unknown> | undefined\n\n constructor(public config: MutationCacheConfig = {}) {\n super()\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 mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state,\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<\n TData = unknown,\n TError = DefaultError,\n TVariables = any,\n TContext = unknown,\n >(\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) =>\n matchMutation(filters, mutation),\n )\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<unknown> {\n this.#resuming = (this.#resuming ?? Promise.resolve())\n .then(() => {\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() as Promise<unknown>,\n ),\n )\n })\n .then(() => {\n this.#resuming = undefined\n })\n\n return this.#resuming\n }\n}\n"],"names":["MutationCache","Subscribable","constructor","config","build","client","options","state","mutation","Mutation","mutationCache","mutationId","defaultMutationOptions","add","push","notify","type","remove","filter","x","clear","notifyManager","batch","forEach","getAll","find","filters","exact","matchMutation","findAll","event","listeners","listener","resumePausedMutations","Promise","resolve","then","pausedMutations","isPaused","reduce","promise","continue","catch","noop","undefined"],"mappings":"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"}
1
+ {"version":3,"file":"mutationCache.mjs","sources":["../../src/mutationCache.ts"],"sourcesContent":["import type { MutationObserver } from './mutationObserver'\nimport type { NotifyEvent, MutationOptions, DefaultError } from './types'\nimport type { QueryClient } from './queryClient'\nimport { notifyManager } from './notifyManager'\nimport type { Action, MutationState } from './mutation'\nimport { Mutation } from './mutation'\nimport type { MutationFilters } from './utils'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: DefaultError,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\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 | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n #mutations: Mutation<any, any, any, any>[]\n #mutationId: number\n #resuming: Promise<unknown> | undefined\n\n constructor(public config: MutationCacheConfig = {}) {\n super()\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 mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state,\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<\n TData = unknown,\n TError = DefaultError,\n TVariables = any,\n TContext = unknown,\n >(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n const defaultedFilters = { exact: true, ...filters }\n\n return this.#mutations.find((mutation) =>\n matchMutation(defaultedFilters, mutation),\n )\n }\n\n findAll(filters: MutationFilters = {}): Mutation[] {\n return this.#mutations.filter((mutation) =>\n matchMutation(filters, mutation),\n )\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<unknown> {\n this.#resuming = (this.#resuming ?? Promise.resolve())\n .then(() => {\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() as Promise<unknown>,\n ),\n )\n })\n .then(() => {\n this.#resuming = undefined\n })\n\n return this.#resuming\n }\n}\n"],"names":["MutationCache","Subscribable","constructor","config","build","client","options","state","mutation","Mutation","mutationCache","mutationId","defaultMutationOptions","add","push","notify","type","remove","filter","x","clear","notifyManager","batch","forEach","getAll","find","filters","defaultedFilters","exact","matchMutation","findAll","event","listeners","listener","resumePausedMutations","Promise","resolve","then","pausedMutations","isPaused","reduce","promise","continue","catch","noop","undefined"],"mappings":"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"}
@@ -16,3 +16,4 @@ export declare class MutationObserver<TData = unknown, TError = DefaultError, TV
16
16
  mutate(variables: TVariables, options?: MutateOptions<TData, TError, TVariables, TContext>): Promise<TData>;
17
17
  }
18
18
  export {};
19
+ //# sourceMappingURL=mutationObserver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutationObserver.d.ts","sourceRoot":"","sources":["../../src/mutationObserver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAY,MAAM,YAAY,CAAA;AAGlD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EACV,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,YAAY,EACb,MAAM,SAAS,CAAA;AAKhB,aAAK,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,IAAI,CACnE,MAAM,EAAE,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,KAChE,IAAI,CAAA;AAIT,qBAAa,gBAAgB,CAC3B,KAAK,GAAG,OAAO,EACf,MAAM,GAAG,YAAY,EACrB,UAAU,GAAG,IAAI,EACjB,QAAQ,GAAG,OAAO,CAClB,SAAQ,YAAY,CACpB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAC9D;;IACC,OAAO,EAAG,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;gBASpE,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC;IAUvE,SAAS,CAAC,WAAW,IAAI,IAAI;IAK7B,UAAU,CACR,OAAO,CAAC,EAAE,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC;IAcxE,SAAS,CAAC,aAAa,IAAI,IAAI;IAM/B,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,IAAI;IAM3E,gBAAgB,IAAI,sBAAsB,CACxC,KAAK,EACL,MAAM,EACN,UAAU,EACV,QAAQ,CACT;IAID,KAAK,IAAI,IAAI;IAMb,MAAM,CACJ,SAAS,EAAE,UAAU,EACrB,OAAO,CAAC,EAAE,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,GAC3D,OAAO,CAAC,KAAK,CAAC;CAmElB"}
@@ -1,95 +1,125 @@
1
+ import { classPrivateFieldLooseBase as _classPrivateFieldLooseBase, classPrivateFieldLooseKey as _classPrivateFieldLooseKey } from './_virtual/_rollupPluginBabelHelpers.esm.js';
1
2
  import { getDefaultState } from './mutation.esm.js';
2
3
  import { notifyManager } from './notifyManager.esm.js';
3
4
  import { Subscribable } from './subscribable.esm.js';
4
5
  import { shallowEqualObjects } from './utils.esm.js';
5
6
 
6
7
  // TYPES
7
-
8
+ var _client = /*#__PURE__*/_classPrivateFieldLooseKey("client");
9
+ var _currentResult = /*#__PURE__*/_classPrivateFieldLooseKey("currentResult");
10
+ var _currentMutation = /*#__PURE__*/_classPrivateFieldLooseKey("currentMutation");
11
+ var _mutateOptions = /*#__PURE__*/_classPrivateFieldLooseKey("mutateOptions");
12
+ var _updateResult = /*#__PURE__*/_classPrivateFieldLooseKey("updateResult");
13
+ var _notify = /*#__PURE__*/_classPrivateFieldLooseKey("notify");
8
14
  // CLASS
9
15
 
10
16
  class MutationObserver extends Subscribable {
11
- #client;
12
- #currentResult = undefined;
13
- #currentMutation;
14
- #mutateOptions;
15
17
  constructor(client, options) {
16
18
  super();
17
- this.#client = client;
19
+ Object.defineProperty(this, _notify, {
20
+ value: _notify2
21
+ });
22
+ Object.defineProperty(this, _updateResult, {
23
+ value: _updateResult2
24
+ });
25
+ Object.defineProperty(this, _client, {
26
+ writable: true,
27
+ value: void 0
28
+ });
29
+ Object.defineProperty(this, _currentResult, {
30
+ writable: true,
31
+ value: undefined
32
+ });
33
+ Object.defineProperty(this, _currentMutation, {
34
+ writable: true,
35
+ value: void 0
36
+ });
37
+ Object.defineProperty(this, _mutateOptions, {
38
+ writable: true,
39
+ value: void 0
40
+ });
41
+ _classPrivateFieldLooseBase(this, _client)[_client] = client;
18
42
  this.setOptions(options);
19
43
  this.bindMethods();
20
- this.#updateResult();
44
+ _classPrivateFieldLooseBase(this, _updateResult)[_updateResult]();
21
45
  }
22
46
  bindMethods() {
23
47
  this.mutate = this.mutate.bind(this);
24
48
  this.reset = this.reset.bind(this);
25
49
  }
26
50
  setOptions(options) {
51
+ var _classPrivateFieldLoo;
27
52
  const prevOptions = this.options;
28
- this.options = this.#client.defaultMutationOptions(options);
53
+ this.options = _classPrivateFieldLooseBase(this, _client)[_client].defaultMutationOptions(options);
29
54
  if (!shallowEqualObjects(prevOptions, this.options)) {
30
- this.#client.getMutationCache().notify({
55
+ _classPrivateFieldLooseBase(this, _client)[_client].getMutationCache().notify({
31
56
  type: 'observerOptionsUpdated',
32
- mutation: this.#currentMutation,
57
+ mutation: _classPrivateFieldLooseBase(this, _currentMutation)[_currentMutation],
33
58
  observer: this
34
59
  });
35
60
  }
36
- this.#currentMutation?.setOptions(this.options);
61
+ (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _currentMutation)[_currentMutation]) == null ? void 0 : _classPrivateFieldLoo.setOptions(this.options);
37
62
  }
38
63
  onUnsubscribe() {
39
- if (!this.listeners.length) {
40
- this.#currentMutation?.removeObserver(this);
64
+ if (!this.hasListeners()) {
65
+ var _classPrivateFieldLoo2;
66
+ (_classPrivateFieldLoo2 = _classPrivateFieldLooseBase(this, _currentMutation)[_currentMutation]) == null ? void 0 : _classPrivateFieldLoo2.removeObserver(this);
41
67
  }
42
68
  }
43
69
  onMutationUpdate(action) {
44
- this.#updateResult();
45
- this.#notify(action);
70
+ _classPrivateFieldLooseBase(this, _updateResult)[_updateResult]();
71
+ _classPrivateFieldLooseBase(this, _notify)[_notify](action);
46
72
  }
47
73
  getCurrentResult() {
48
- return this.#currentResult;
74
+ return _classPrivateFieldLooseBase(this, _currentResult)[_currentResult];
49
75
  }
50
76
  reset() {
51
- this.#currentMutation = undefined;
52
- this.#updateResult();
53
- this.#notify();
77
+ _classPrivateFieldLooseBase(this, _currentMutation)[_currentMutation] = undefined;
78
+ _classPrivateFieldLooseBase(this, _updateResult)[_updateResult]();
79
+ _classPrivateFieldLooseBase(this, _notify)[_notify]();
54
80
  }
55
81
  mutate(variables, options) {
56
- this.#mutateOptions = options;
57
- this.#currentMutation?.removeObserver(this);
58
- this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);
59
- this.#currentMutation.addObserver(this);
60
- return this.#currentMutation.execute(variables);
82
+ var _classPrivateFieldLoo3;
83
+ _classPrivateFieldLooseBase(this, _mutateOptions)[_mutateOptions] = options;
84
+ (_classPrivateFieldLoo3 = _classPrivateFieldLooseBase(this, _currentMutation)[_currentMutation]) == null ? void 0 : _classPrivateFieldLoo3.removeObserver(this);
85
+ _classPrivateFieldLooseBase(this, _currentMutation)[_currentMutation] = _classPrivateFieldLooseBase(this, _client)[_client].getMutationCache().build(_classPrivateFieldLooseBase(this, _client)[_client], this.options);
86
+ _classPrivateFieldLooseBase(this, _currentMutation)[_currentMutation].addObserver(this);
87
+ return _classPrivateFieldLooseBase(this, _currentMutation)[_currentMutation].execute(variables);
61
88
  }
62
- #updateResult() {
63
- const state = this.#currentMutation?.state ?? getDefaultState();
64
- this.#currentResult = {
65
- ...state,
66
- isPending: state.status === 'pending',
67
- isSuccess: state.status === 'success',
68
- isError: state.status === 'error',
69
- isIdle: state.status === 'idle',
70
- mutate: this.mutate,
71
- reset: this.reset
72
- };
73
- }
74
- #notify(action) {
75
- notifyManager.batch(() => {
76
- // First trigger the mutate callbacks
77
- if (this.#mutateOptions && this.hasListeners()) {
78
- if (action?.type === 'success') {
79
- this.#mutateOptions.onSuccess?.(action.data, this.#currentResult.variables, this.#currentResult.context);
80
- this.#mutateOptions.onSettled?.(action.data, null, this.#currentResult.variables, this.#currentResult.context);
81
- } else if (action?.type === 'error') {
82
- this.#mutateOptions.onError?.(action.error, this.#currentResult.variables, this.#currentResult.context);
83
- this.#mutateOptions.onSettled?.(undefined, action.error, this.#currentResult.variables, this.#currentResult.context);
84
- }
89
+ }
90
+ function _updateResult2() {
91
+ var _classPrivateFieldLoo4, _classPrivateFieldLoo5;
92
+ const state = (_classPrivateFieldLoo4 = (_classPrivateFieldLoo5 = _classPrivateFieldLooseBase(this, _currentMutation)[_currentMutation]) == null ? void 0 : _classPrivateFieldLoo5.state) != null ? _classPrivateFieldLoo4 : getDefaultState();
93
+ _classPrivateFieldLooseBase(this, _currentResult)[_currentResult] = {
94
+ ...state,
95
+ isPending: state.status === 'pending',
96
+ isSuccess: state.status === 'success',
97
+ isError: state.status === 'error',
98
+ isIdle: state.status === 'idle',
99
+ mutate: this.mutate,
100
+ reset: this.reset
101
+ };
102
+ }
103
+ function _notify2(action) {
104
+ notifyManager.batch(() => {
105
+ // First trigger the mutate callbacks
106
+ if (_classPrivateFieldLooseBase(this, _mutateOptions)[_mutateOptions] && this.hasListeners()) {
107
+ if ((action == null ? void 0 : action.type) === 'success') {
108
+ var _classPrivateFieldLoo6, _classPrivateFieldLoo7, _classPrivateFieldLoo8, _classPrivateFieldLoo9;
109
+ (_classPrivateFieldLoo6 = (_classPrivateFieldLoo7 = _classPrivateFieldLooseBase(this, _mutateOptions)[_mutateOptions]).onSuccess) == null ? void 0 : _classPrivateFieldLoo6.call(_classPrivateFieldLoo7, action.data, _classPrivateFieldLooseBase(this, _currentResult)[_currentResult].variables, _classPrivateFieldLooseBase(this, _currentResult)[_currentResult].context);
110
+ (_classPrivateFieldLoo8 = (_classPrivateFieldLoo9 = _classPrivateFieldLooseBase(this, _mutateOptions)[_mutateOptions]).onSettled) == null ? void 0 : _classPrivateFieldLoo8.call(_classPrivateFieldLoo9, action.data, null, _classPrivateFieldLooseBase(this, _currentResult)[_currentResult].variables, _classPrivateFieldLooseBase(this, _currentResult)[_currentResult].context);
111
+ } else if ((action == null ? void 0 : action.type) === 'error') {
112
+ var _classPrivateFieldLoo10, _classPrivateFieldLoo11, _classPrivateFieldLoo12, _classPrivateFieldLoo13;
113
+ (_classPrivateFieldLoo10 = (_classPrivateFieldLoo11 = _classPrivateFieldLooseBase(this, _mutateOptions)[_mutateOptions]).onError) == null ? void 0 : _classPrivateFieldLoo10.call(_classPrivateFieldLoo11, action.error, _classPrivateFieldLooseBase(this, _currentResult)[_currentResult].variables, _classPrivateFieldLooseBase(this, _currentResult)[_currentResult].context);
114
+ (_classPrivateFieldLoo12 = (_classPrivateFieldLoo13 = _classPrivateFieldLooseBase(this, _mutateOptions)[_mutateOptions]).onSettled) == null ? void 0 : _classPrivateFieldLoo12.call(_classPrivateFieldLoo13, undefined, action.error, _classPrivateFieldLooseBase(this, _currentResult)[_currentResult].variables, _classPrivateFieldLooseBase(this, _currentResult)[_currentResult].context);
85
115
  }
116
+ }
86
117
 
87
- // Then trigger the listeners
88
- this.listeners.forEach(listener => {
89
- listener(this.#currentResult);
90
- });
118
+ // Then trigger the listeners
119
+ this.listeners.forEach(listener => {
120
+ listener(_classPrivateFieldLooseBase(this, _currentResult)[_currentResult]);
91
121
  });
92
- }
122
+ });
93
123
  }
94
124
 
95
125
  export { MutationObserver };
@@ -1 +1 @@
1
- {"version":3,"file":"mutationObserver.esm.js","sources":["../../src/mutationObserver.ts"],"sourcesContent":["import type { Action, Mutation } from './mutation'\nimport { getDefaultState } from './mutation'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type {\n MutateOptions,\n MutationObserverResult,\n MutationObserverOptions,\n DefaultError,\n} from './types'\nimport { shallowEqualObjects } from './utils'\n\n// TYPES\n\ntype MutationObserverListener<TData, TError, TVariables, TContext> = (\n result: MutationObserverResult<TData, TError, TVariables, TContext>,\n) => void\n\n// CLASS\n\nexport class MutationObserver<\n TData = unknown,\n TError = DefaultError,\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 #client: QueryClient\n #currentResult: MutationObserverResult<TData, TError, TVariables, TContext> =\n undefined!\n #currentMutation?: Mutation<TData, TError, TVariables, TContext>\n #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 const prevOptions = this.options\n this.options = this.#client.defaultMutationOptions(options)\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.#currentMutation,\n observer: this,\n })\n }\n this.#currentMutation?.setOptions(this.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 this.#notify(action)\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()\n }\n\n mutate(\n variables: TVariables,\n options?: MutateOptions<TData, TError, TVariables, TContext>,\n ): Promise<TData> {\n this.#mutateOptions = options\n\n this.#currentMutation?.removeObserver(this)\n\n this.#currentMutation = this.#client\n .getMutationCache()\n .build(this.#client, this.options)\n\n this.#currentMutation.addObserver(this)\n\n return this.#currentMutation.execute(variables)\n }\n\n #updateResult(): void {\n const state =\n this.#currentMutation?.state ??\n getDefaultState<TData, TError, TVariables, TContext>()\n\n this.#currentResult = {\n ...state,\n isPending: state.status === 'pending',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset,\n } as MutationObserverResult<TData, TError, TVariables, TContext>\n }\n\n #notify(action?: Action<TData, TError, TVariables, TContext>): void {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.#mutateOptions && this.hasListeners()) {\n if (action?.type === 'success') {\n this.#mutateOptions.onSuccess?.(\n action.data,\n this.#currentResult.variables!,\n this.#currentResult.context!,\n )\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n } else if (action?.type === 'error') {\n this.#mutateOptions.onError?.(\n action.error,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n this.#mutateOptions.onSettled?.(\n undefined,\n action.error,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n }\n }\n\n // Then trigger the listeners\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n })\n }\n}\n"],"names":["MutationObserver","Subscribable","undefined","constructor","client","options","setOptions","bindMethods","mutate","bind","reset","prevOptions","defaultMutationOptions","shallowEqualObjects","getMutationCache","notify","type","mutation","observer","onUnsubscribe","listeners","length","removeObserver","onMutationUpdate","action","getCurrentResult","variables","build","addObserver","execute","state","getDefaultState","isPending","status","isSuccess","isError","isIdle","notifyManager","batch","hasListeners","onSuccess","data","context","onSettled","onError","error","forEach","listener"],"mappings":"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"}
1
+ {"version":3,"file":"mutationObserver.esm.js","sources":["../../src/mutationObserver.ts"],"sourcesContent":["import type { Action, Mutation } from './mutation'\nimport { getDefaultState } from './mutation'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type {\n MutateOptions,\n MutationObserverResult,\n MutationObserverOptions,\n DefaultError,\n} from './types'\nimport { shallowEqualObjects } from './utils'\n\n// TYPES\n\ntype MutationObserverListener<TData, TError, TVariables, TContext> = (\n result: MutationObserverResult<TData, TError, TVariables, TContext>,\n) => void\n\n// CLASS\n\nexport class MutationObserver<\n TData = unknown,\n TError = DefaultError,\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 #client: QueryClient\n #currentResult: MutationObserverResult<TData, TError, TVariables, TContext> =\n undefined!\n #currentMutation?: Mutation<TData, TError, TVariables, TContext>\n #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 const prevOptions = this.options\n this.options = this.#client.defaultMutationOptions(options)\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.#currentMutation,\n observer: this,\n })\n }\n this.#currentMutation?.setOptions(this.options)\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this)\n }\n }\n\n onMutationUpdate(action: Action<TData, TError, TVariables, TContext>): void {\n this.#updateResult()\n\n this.#notify(action)\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()\n }\n\n mutate(\n variables: TVariables,\n options?: MutateOptions<TData, TError, TVariables, TContext>,\n ): Promise<TData> {\n this.#mutateOptions = options\n\n this.#currentMutation?.removeObserver(this)\n\n this.#currentMutation = this.#client\n .getMutationCache()\n .build(this.#client, this.options)\n\n this.#currentMutation.addObserver(this)\n\n return this.#currentMutation.execute(variables)\n }\n\n #updateResult(): void {\n const state =\n this.#currentMutation?.state ??\n getDefaultState<TData, TError, TVariables, TContext>()\n\n this.#currentResult = {\n ...state,\n isPending: state.status === 'pending',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset,\n } as MutationObserverResult<TData, TError, TVariables, TContext>\n }\n\n #notify(action?: Action<TData, TError, TVariables, TContext>): void {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.#mutateOptions && this.hasListeners()) {\n if (action?.type === 'success') {\n this.#mutateOptions.onSuccess?.(\n action.data,\n this.#currentResult.variables!,\n this.#currentResult.context!,\n )\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n } else if (action?.type === 'error') {\n this.#mutateOptions.onError?.(\n action.error,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n this.#mutateOptions.onSettled?.(\n undefined,\n action.error,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n }\n }\n\n // Then trigger the listeners\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n })\n }\n}\n"],"names":["MutationObserver","Subscribable","constructor","client","options","undefined","setOptions","bindMethods","mutate","bind","reset","prevOptions","defaultMutationOptions","shallowEqualObjects","getMutationCache","notify","type","mutation","observer","onUnsubscribe","hasListeners","removeObserver","onMutationUpdate","action","getCurrentResult","variables","build","addObserver","execute","state","getDefaultState","isPending","status","isSuccess","isError","isIdle","notifyManager","batch","onSuccess","data","context","onSettled","onError","error","listeners","forEach","listener"],"mappings":"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"}