@tanstack/query-core 5.94.4 → 5.94.5

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 (295) hide show
  1. package/build/legacy/_tsup-dts-rollup.d.cts +2229 -0
  2. package/build/legacy/_tsup-dts-rollup.d.ts +2229 -0
  3. package/build/legacy/chunk-PXG64RU4.js +25 -0
  4. package/build/legacy/chunk-PXG64RU4.js.map +1 -0
  5. package/build/legacy/environmentManager.cjs +48 -0
  6. package/build/legacy/environmentManager.cjs.map +1 -0
  7. package/build/legacy/environmentManager.d.cts +2 -0
  8. package/build/legacy/environmentManager.d.ts +2 -0
  9. package/build/legacy/environmentManager.js +25 -0
  10. package/build/legacy/environmentManager.js.map +1 -0
  11. package/build/legacy/focusManager.cjs +107 -0
  12. package/build/legacy/focusManager.cjs.map +1 -0
  13. package/build/legacy/focusManager.d.cts +2 -0
  14. package/build/legacy/focusManager.d.ts +2 -0
  15. package/build/legacy/focusManager.js +80 -0
  16. package/build/legacy/focusManager.js.map +1 -0
  17. package/build/legacy/hydration.cjs +178 -0
  18. package/build/legacy/hydration.cjs.map +1 -0
  19. package/build/legacy/hydration.d.cts +7 -0
  20. package/build/legacy/hydration.d.ts +7 -0
  21. package/build/legacy/hydration.js +152 -0
  22. package/build/legacy/hydration.js.map +1 -0
  23. package/build/legacy/index.cjs +113 -0
  24. package/build/legacy/index.cjs.map +1 -0
  25. package/build/legacy/index.d.cts +142 -0
  26. package/build/legacy/index.d.ts +142 -0
  27. package/build/legacy/index.js +75 -0
  28. package/build/legacy/index.js.map +1 -0
  29. package/build/legacy/infiniteQueryBehavior.cjs +146 -0
  30. package/build/legacy/infiniteQueryBehavior.cjs.map +1 -0
  31. package/build/legacy/infiniteQueryBehavior.d.cts +3 -0
  32. package/build/legacy/infiniteQueryBehavior.d.ts +3 -0
  33. package/build/legacy/infiniteQueryBehavior.js +126 -0
  34. package/build/legacy/infiniteQueryBehavior.js.map +1 -0
  35. package/build/legacy/infiniteQueryObserver.cjs +93 -0
  36. package/build/legacy/infiniteQueryObserver.cjs.map +1 -0
  37. package/build/legacy/infiniteQueryObserver.d.cts +1 -0
  38. package/build/legacy/infiniteQueryObserver.d.ts +1 -0
  39. package/build/legacy/infiniteQueryObserver.js +74 -0
  40. package/build/legacy/infiniteQueryObserver.js.map +1 -0
  41. package/build/legacy/mutation.cjs +333 -0
  42. package/build/legacy/mutation.cjs.map +1 -0
  43. package/build/legacy/mutation.d.cts +4 -0
  44. package/build/legacy/mutation.d.ts +4 -0
  45. package/build/legacy/mutation.js +306 -0
  46. package/build/legacy/mutation.js.map +1 -0
  47. package/build/legacy/mutationCache.cjs +170 -0
  48. package/build/legacy/mutationCache.cjs.map +1 -0
  49. package/build/legacy/mutationCache.d.cts +2 -0
  50. package/build/legacy/mutationCache.d.ts +2 -0
  51. package/build/legacy/mutationCache.js +137 -0
  52. package/build/legacy/mutationCache.js.map +1 -0
  53. package/build/legacy/mutationObserver.cjs +190 -0
  54. package/build/legacy/mutationObserver.cjs.map +1 -0
  55. package/build/legacy/mutationObserver.d.cts +1 -0
  56. package/build/legacy/mutationObserver.d.ts +1 -0
  57. package/build/legacy/mutationObserver.js +164 -0
  58. package/build/legacy/mutationObserver.js.map +1 -0
  59. package/build/legacy/notifyManager.cjs +113 -0
  60. package/build/legacy/notifyManager.cjs.map +1 -0
  61. package/build/legacy/notifyManager.d.cts +3 -0
  62. package/build/legacy/notifyManager.d.ts +3 -0
  63. package/build/legacy/notifyManager.js +88 -0
  64. package/build/legacy/notifyManager.js.map +1 -0
  65. package/build/legacy/onlineManager.cjs +96 -0
  66. package/build/legacy/onlineManager.cjs.map +1 -0
  67. package/build/legacy/onlineManager.d.cts +2 -0
  68. package/build/legacy/onlineManager.d.ts +2 -0
  69. package/build/legacy/onlineManager.js +69 -0
  70. package/build/legacy/onlineManager.js.map +1 -0
  71. package/build/legacy/queriesObserver.cjs +260 -0
  72. package/build/legacy/queriesObserver.cjs.map +1 -0
  73. package/build/legacy/queriesObserver.d.cts +2 -0
  74. package/build/legacy/queriesObserver.d.ts +2 -0
  75. package/build/legacy/queriesObserver.js +234 -0
  76. package/build/legacy/queriesObserver.js.map +1 -0
  77. package/build/legacy/query.cjs +487 -0
  78. package/build/legacy/query.cjs.map +1 -0
  79. package/build/legacy/query.d.cts +10 -0
  80. package/build/legacy/query.d.ts +10 -0
  81. package/build/legacy/query.js +468 -0
  82. package/build/legacy/query.js.map +1 -0
  83. package/build/legacy/queryCache.cjs +131 -0
  84. package/build/legacy/queryCache.cjs.map +1 -0
  85. package/build/legacy/queryCache.d.cts +3 -0
  86. package/build/legacy/queryCache.d.ts +3 -0
  87. package/build/legacy/queryCache.js +105 -0
  88. package/build/legacy/queryCache.js.map +1 -0
  89. package/build/legacy/queryClient.cjs +349 -0
  90. package/build/legacy/queryClient.cjs.map +1 -0
  91. package/build/legacy/queryClient.d.cts +1 -0
  92. package/build/legacy/queryClient.d.ts +1 -0
  93. package/build/legacy/queryClient.js +324 -0
  94. package/build/legacy/queryClient.js.map +1 -0
  95. package/build/legacy/queryObserver.cjs +516 -0
  96. package/build/legacy/queryObserver.cjs.map +1 -0
  97. package/build/legacy/queryObserver.d.cts +1 -0
  98. package/build/legacy/queryObserver.d.ts +1 -0
  99. package/build/legacy/queryObserver.js +498 -0
  100. package/build/legacy/queryObserver.js.map +1 -0
  101. package/build/legacy/removable.cjs +70 -0
  102. package/build/legacy/removable.cjs.map +1 -0
  103. package/build/legacy/removable.d.cts +1 -0
  104. package/build/legacy/removable.d.ts +1 -0
  105. package/build/legacy/removable.js +44 -0
  106. package/build/legacy/removable.js.map +1 -0
  107. package/build/legacy/retryer.cjs +166 -0
  108. package/build/legacy/retryer.cjs.map +1 -0
  109. package/build/legacy/retryer.d.cts +7 -0
  110. package/build/legacy/retryer.d.ts +7 -0
  111. package/build/legacy/retryer.js +140 -0
  112. package/build/legacy/retryer.js.map +1 -0
  113. package/build/legacy/streamedQuery.cjs +80 -0
  114. package/build/legacy/streamedQuery.cjs.map +1 -0
  115. package/build/legacy/streamedQuery.d.cts +1 -0
  116. package/build/legacy/streamedQuery.d.ts +1 -0
  117. package/build/legacy/streamedQuery.js +57 -0
  118. package/build/legacy/streamedQuery.js.map +1 -0
  119. package/build/legacy/subscribable.cjs +51 -0
  120. package/build/legacy/subscribable.cjs.map +1 -0
  121. package/build/legacy/subscribable.d.cts +1 -0
  122. package/build/legacy/subscribable.d.ts +1 -0
  123. package/build/legacy/subscribable.js +28 -0
  124. package/build/legacy/subscribable.js.map +1 -0
  125. package/build/legacy/thenable.cjs +76 -0
  126. package/build/legacy/thenable.cjs.map +1 -0
  127. package/build/legacy/thenable.d.cts +6 -0
  128. package/build/legacy/thenable.d.ts +6 -0
  129. package/build/legacy/thenable.js +52 -0
  130. package/build/legacy/thenable.js.map +1 -0
  131. package/build/legacy/timeoutManager.cjs +110 -0
  132. package/build/legacy/timeoutManager.cjs.map +1 -0
  133. package/build/legacy/timeoutManager.d.cts +7 -0
  134. package/build/legacy/timeoutManager.d.ts +7 -0
  135. package/build/legacy/timeoutManager.js +81 -0
  136. package/build/legacy/timeoutManager.js.map +1 -0
  137. package/build/legacy/types.cjs +37 -0
  138. package/build/legacy/types.cjs.map +1 -0
  139. package/build/legacy/types.d.cts +95 -0
  140. package/build/legacy/types.d.ts +95 -0
  141. package/build/legacy/types.js +12 -0
  142. package/build/legacy/types.js.map +1 -0
  143. package/build/legacy/utils.cjs +330 -0
  144. package/build/legacy/utils.cjs.map +1 -0
  145. package/build/legacy/utils.d.cts +30 -0
  146. package/build/legacy/utils.d.ts +30 -0
  147. package/build/legacy/utils.js +283 -0
  148. package/build/legacy/utils.js.map +1 -0
  149. package/build/modern/_tsup-dts-rollup.d.cts +2229 -0
  150. package/build/modern/_tsup-dts-rollup.d.ts +2229 -0
  151. package/build/modern/environmentManager.cjs +48 -0
  152. package/build/modern/environmentManager.cjs.map +1 -0
  153. package/build/modern/environmentManager.d.cts +2 -0
  154. package/build/modern/environmentManager.d.ts +2 -0
  155. package/build/modern/environmentManager.js +23 -0
  156. package/build/modern/environmentManager.js.map +1 -0
  157. package/build/modern/focusManager.cjs +93 -0
  158. package/build/modern/focusManager.cjs.map +1 -0
  159. package/build/modern/focusManager.d.cts +2 -0
  160. package/build/modern/focusManager.d.ts +2 -0
  161. package/build/modern/focusManager.js +67 -0
  162. package/build/modern/focusManager.js.map +1 -0
  163. package/build/modern/hydration.cjs +173 -0
  164. package/build/modern/hydration.cjs.map +1 -0
  165. package/build/modern/hydration.d.cts +7 -0
  166. package/build/modern/hydration.d.ts +7 -0
  167. package/build/modern/hydration.js +145 -0
  168. package/build/modern/hydration.js.map +1 -0
  169. package/build/modern/index.cjs +113 -0
  170. package/build/modern/index.cjs.map +1 -0
  171. package/build/modern/index.d.cts +142 -0
  172. package/build/modern/index.d.ts +142 -0
  173. package/build/modern/index.js +73 -0
  174. package/build/modern/index.js.map +1 -0
  175. package/build/modern/infiniteQueryBehavior.cjs +142 -0
  176. package/build/modern/infiniteQueryBehavior.cjs.map +1 -0
  177. package/build/modern/infiniteQueryBehavior.d.cts +3 -0
  178. package/build/modern/infiniteQueryBehavior.d.ts +3 -0
  179. package/build/modern/infiniteQueryBehavior.js +120 -0
  180. package/build/modern/infiniteQueryBehavior.js.map +1 -0
  181. package/build/modern/infiniteQueryObserver.cjs +92 -0
  182. package/build/modern/infiniteQueryObserver.cjs.map +1 -0
  183. package/build/modern/infiniteQueryObserver.d.cts +1 -0
  184. package/build/modern/infiniteQueryObserver.d.ts +1 -0
  185. package/build/modern/infiniteQueryObserver.js +71 -0
  186. package/build/modern/infiniteQueryObserver.js.map +1 -0
  187. package/build/modern/mutation.cjs +307 -0
  188. package/build/modern/mutation.cjs.map +1 -0
  189. package/build/modern/mutation.d.cts +4 -0
  190. package/build/modern/mutation.d.ts +4 -0
  191. package/build/modern/mutation.js +281 -0
  192. package/build/modern/mutation.js.map +1 -0
  193. package/build/modern/mutationCache.cjs +149 -0
  194. package/build/modern/mutationCache.cjs.map +1 -0
  195. package/build/modern/mutationCache.d.cts +2 -0
  196. package/build/modern/mutationCache.d.ts +2 -0
  197. package/build/modern/mutationCache.js +124 -0
  198. package/build/modern/mutationCache.js.map +1 -0
  199. package/build/modern/mutationObserver.cjs +165 -0
  200. package/build/modern/mutationObserver.cjs.map +1 -0
  201. package/build/modern/mutationObserver.d.cts +1 -0
  202. package/build/modern/mutationObserver.d.ts +1 -0
  203. package/build/modern/mutationObserver.js +140 -0
  204. package/build/modern/mutationObserver.js.map +1 -0
  205. package/build/modern/notifyManager.cjs +113 -0
  206. package/build/modern/notifyManager.cjs.map +1 -0
  207. package/build/modern/notifyManager.d.cts +3 -0
  208. package/build/modern/notifyManager.d.ts +3 -0
  209. package/build/modern/notifyManager.js +86 -0
  210. package/build/modern/notifyManager.js.map +1 -0
  211. package/build/modern/onlineManager.cjs +83 -0
  212. package/build/modern/onlineManager.cjs.map +1 -0
  213. package/build/modern/onlineManager.d.cts +2 -0
  214. package/build/modern/onlineManager.d.ts +2 -0
  215. package/build/modern/onlineManager.js +57 -0
  216. package/build/modern/onlineManager.js.map +1 -0
  217. package/build/modern/queriesObserver.cjs +237 -0
  218. package/build/modern/queriesObserver.cjs.map +1 -0
  219. package/build/modern/queriesObserver.d.cts +2 -0
  220. package/build/modern/queriesObserver.d.ts +2 -0
  221. package/build/modern/queriesObserver.js +212 -0
  222. package/build/modern/queriesObserver.js.map +1 -0
  223. package/build/modern/query.cjs +461 -0
  224. package/build/modern/query.cjs.map +1 -0
  225. package/build/modern/query.d.cts +10 -0
  226. package/build/modern/query.d.ts +10 -0
  227. package/build/modern/query.js +443 -0
  228. package/build/modern/query.js.map +1 -0
  229. package/build/modern/queryCache.cjs +122 -0
  230. package/build/modern/queryCache.cjs.map +1 -0
  231. package/build/modern/queryCache.d.cts +3 -0
  232. package/build/modern/queryCache.d.ts +3 -0
  233. package/build/modern/queryCache.js +97 -0
  234. package/build/modern/queryCache.js.map +1 -0
  235. package/build/modern/queryClient.cjs +322 -0
  236. package/build/modern/queryClient.cjs.map +1 -0
  237. package/build/modern/queryClient.d.cts +1 -0
  238. package/build/modern/queryClient.d.ts +1 -0
  239. package/build/modern/queryClient.js +305 -0
  240. package/build/modern/queryClient.js.map +1 -0
  241. package/build/modern/queryObserver.cjs +489 -0
  242. package/build/modern/queryObserver.cjs.map +1 -0
  243. package/build/modern/queryObserver.d.cts +1 -0
  244. package/build/modern/queryObserver.d.ts +1 -0
  245. package/build/modern/queryObserver.js +472 -0
  246. package/build/modern/queryObserver.js.map +1 -0
  247. package/build/modern/removable.cjs +59 -0
  248. package/build/modern/removable.cjs.map +1 -0
  249. package/build/modern/removable.d.cts +1 -0
  250. package/build/modern/removable.d.ts +1 -0
  251. package/build/modern/removable.js +34 -0
  252. package/build/modern/removable.js.map +1 -0
  253. package/build/modern/retryer.cjs +162 -0
  254. package/build/modern/retryer.cjs.map +1 -0
  255. package/build/modern/retryer.d.cts +7 -0
  256. package/build/modern/retryer.d.ts +7 -0
  257. package/build/modern/retryer.js +134 -0
  258. package/build/modern/retryer.js.map +1 -0
  259. package/build/modern/streamedQuery.cjs +80 -0
  260. package/build/modern/streamedQuery.cjs.map +1 -0
  261. package/build/modern/streamedQuery.d.cts +1 -0
  262. package/build/modern/streamedQuery.d.ts +1 -0
  263. package/build/modern/streamedQuery.js +55 -0
  264. package/build/modern/streamedQuery.js.map +1 -0
  265. package/build/modern/subscribable.cjs +51 -0
  266. package/build/modern/subscribable.cjs.map +1 -0
  267. package/build/modern/subscribable.d.cts +1 -0
  268. package/build/modern/subscribable.d.ts +1 -0
  269. package/build/modern/subscribable.js +26 -0
  270. package/build/modern/subscribable.js.map +1 -0
  271. package/build/modern/thenable.cjs +75 -0
  272. package/build/modern/thenable.cjs.map +1 -0
  273. package/build/modern/thenable.d.cts +6 -0
  274. package/build/modern/thenable.d.ts +6 -0
  275. package/build/modern/thenable.js +49 -0
  276. package/build/modern/thenable.js.map +1 -0
  277. package/build/modern/timeoutManager.cjs +98 -0
  278. package/build/modern/timeoutManager.cjs.map +1 -0
  279. package/build/modern/timeoutManager.d.cts +7 -0
  280. package/build/modern/timeoutManager.d.ts +7 -0
  281. package/build/modern/timeoutManager.js +70 -0
  282. package/build/modern/timeoutManager.js.map +1 -0
  283. package/build/modern/types.cjs +37 -0
  284. package/build/modern/types.cjs.map +1 -0
  285. package/build/modern/types.d.cts +95 -0
  286. package/build/modern/types.d.ts +95 -0
  287. package/build/modern/types.js +10 -0
  288. package/build/modern/types.js.map +1 -0
  289. package/build/modern/utils.cjs +330 -0
  290. package/build/modern/utils.cjs.map +1 -0
  291. package/build/modern/utils.d.cts +30 -0
  292. package/build/modern/utils.d.ts +30 -0
  293. package/build/modern/utils.js +281 -0
  294. package/build/modern/utils.js.map +1 -0
  295. package/package.json +1 -1
@@ -0,0 +1,333 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __typeError = (msg) => {
7
+ throw TypeError(msg);
8
+ };
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
23
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
24
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
25
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
26
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
27
+
28
+ // src/mutation.ts
29
+ var mutation_exports = {};
30
+ __export(mutation_exports, {
31
+ Mutation: () => Mutation,
32
+ getDefaultState: () => getDefaultState
33
+ });
34
+ module.exports = __toCommonJS(mutation_exports);
35
+ var import_notifyManager = require("./notifyManager.cjs");
36
+ var import_removable = require("./removable.cjs");
37
+ var import_retryer = require("./retryer.cjs");
38
+ var _client, _observers, _mutationCache, _retryer, _Mutation_instances, dispatch_fn;
39
+ var Mutation = class extends import_removable.Removable {
40
+ constructor(config) {
41
+ super();
42
+ __privateAdd(this, _Mutation_instances);
43
+ __privateAdd(this, _client);
44
+ __privateAdd(this, _observers);
45
+ __privateAdd(this, _mutationCache);
46
+ __privateAdd(this, _retryer);
47
+ __privateSet(this, _client, config.client);
48
+ this.mutationId = config.mutationId;
49
+ __privateSet(this, _mutationCache, config.mutationCache);
50
+ __privateSet(this, _observers, []);
51
+ this.state = config.state || getDefaultState();
52
+ this.setOptions(config.options);
53
+ this.scheduleGc();
54
+ }
55
+ setOptions(options) {
56
+ this.options = options;
57
+ this.updateGcTime(this.options.gcTime);
58
+ }
59
+ get meta() {
60
+ return this.options.meta;
61
+ }
62
+ addObserver(observer) {
63
+ if (!__privateGet(this, _observers).includes(observer)) {
64
+ __privateGet(this, _observers).push(observer);
65
+ this.clearGcTimeout();
66
+ __privateGet(this, _mutationCache).notify({
67
+ type: "observerAdded",
68
+ mutation: this,
69
+ observer
70
+ });
71
+ }
72
+ }
73
+ removeObserver(observer) {
74
+ __privateSet(this, _observers, __privateGet(this, _observers).filter((x) => x !== observer));
75
+ this.scheduleGc();
76
+ __privateGet(this, _mutationCache).notify({
77
+ type: "observerRemoved",
78
+ mutation: this,
79
+ observer
80
+ });
81
+ }
82
+ optionalRemove() {
83
+ if (!__privateGet(this, _observers).length) {
84
+ if (this.state.status === "pending") {
85
+ this.scheduleGc();
86
+ } else {
87
+ __privateGet(this, _mutationCache).remove(this);
88
+ }
89
+ }
90
+ }
91
+ continue() {
92
+ var _a;
93
+ return ((_a = __privateGet(this, _retryer)) == null ? void 0 : _a.continue()) ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before
94
+ this.execute(this.state.variables);
95
+ }
96
+ async execute(variables) {
97
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;
98
+ const onContinue = () => {
99
+ __privateMethod(this, _Mutation_instances, dispatch_fn).call(this, { type: "continue" });
100
+ };
101
+ const mutationFnContext = {
102
+ client: __privateGet(this, _client),
103
+ meta: this.options.meta,
104
+ mutationKey: this.options.mutationKey
105
+ };
106
+ __privateSet(this, _retryer, (0, import_retryer.createRetryer)({
107
+ fn: () => {
108
+ if (!this.options.mutationFn) {
109
+ return Promise.reject(new Error("No mutationFn found"));
110
+ }
111
+ return this.options.mutationFn(variables, mutationFnContext);
112
+ },
113
+ onFail: (failureCount, error) => {
114
+ __privateMethod(this, _Mutation_instances, dispatch_fn).call(this, { type: "failed", failureCount, error });
115
+ },
116
+ onPause: () => {
117
+ __privateMethod(this, _Mutation_instances, dispatch_fn).call(this, { type: "pause" });
118
+ },
119
+ onContinue,
120
+ retry: this.options.retry ?? 0,
121
+ retryDelay: this.options.retryDelay,
122
+ networkMode: this.options.networkMode,
123
+ canRun: () => __privateGet(this, _mutationCache).canRun(this)
124
+ }));
125
+ const restored = this.state.status === "pending";
126
+ const isPaused = !__privateGet(this, _retryer).canStart();
127
+ try {
128
+ if (restored) {
129
+ onContinue();
130
+ } else {
131
+ __privateMethod(this, _Mutation_instances, dispatch_fn).call(this, { type: "pending", variables, isPaused });
132
+ if (__privateGet(this, _mutationCache).config.onMutate) {
133
+ await __privateGet(this, _mutationCache).config.onMutate(
134
+ variables,
135
+ this,
136
+ mutationFnContext
137
+ );
138
+ }
139
+ const context = await ((_b = (_a = this.options).onMutate) == null ? void 0 : _b.call(
140
+ _a,
141
+ variables,
142
+ mutationFnContext
143
+ ));
144
+ if (context !== this.state.context) {
145
+ __privateMethod(this, _Mutation_instances, dispatch_fn).call(this, {
146
+ type: "pending",
147
+ context,
148
+ variables,
149
+ isPaused
150
+ });
151
+ }
152
+ }
153
+ const data = await __privateGet(this, _retryer).start();
154
+ await ((_d = (_c = __privateGet(this, _mutationCache).config).onSuccess) == null ? void 0 : _d.call(
155
+ _c,
156
+ data,
157
+ variables,
158
+ this.state.context,
159
+ this,
160
+ mutationFnContext
161
+ ));
162
+ await ((_f = (_e = this.options).onSuccess) == null ? void 0 : _f.call(
163
+ _e,
164
+ data,
165
+ variables,
166
+ this.state.context,
167
+ mutationFnContext
168
+ ));
169
+ await ((_h = (_g = __privateGet(this, _mutationCache).config).onSettled) == null ? void 0 : _h.call(
170
+ _g,
171
+ data,
172
+ null,
173
+ this.state.variables,
174
+ this.state.context,
175
+ this,
176
+ mutationFnContext
177
+ ));
178
+ await ((_j = (_i = this.options).onSettled) == null ? void 0 : _j.call(
179
+ _i,
180
+ data,
181
+ null,
182
+ variables,
183
+ this.state.context,
184
+ mutationFnContext
185
+ ));
186
+ __privateMethod(this, _Mutation_instances, dispatch_fn).call(this, { type: "success", data });
187
+ return data;
188
+ } catch (error) {
189
+ try {
190
+ await ((_l = (_k = __privateGet(this, _mutationCache).config).onError) == null ? void 0 : _l.call(
191
+ _k,
192
+ error,
193
+ variables,
194
+ this.state.context,
195
+ this,
196
+ mutationFnContext
197
+ ));
198
+ } catch (e) {
199
+ void Promise.reject(e);
200
+ }
201
+ try {
202
+ await ((_n = (_m = this.options).onError) == null ? void 0 : _n.call(
203
+ _m,
204
+ error,
205
+ variables,
206
+ this.state.context,
207
+ mutationFnContext
208
+ ));
209
+ } catch (e) {
210
+ void Promise.reject(e);
211
+ }
212
+ try {
213
+ await ((_p = (_o = __privateGet(this, _mutationCache).config).onSettled) == null ? void 0 : _p.call(
214
+ _o,
215
+ void 0,
216
+ error,
217
+ this.state.variables,
218
+ this.state.context,
219
+ this,
220
+ mutationFnContext
221
+ ));
222
+ } catch (e) {
223
+ void Promise.reject(e);
224
+ }
225
+ try {
226
+ await ((_r = (_q = this.options).onSettled) == null ? void 0 : _r.call(
227
+ _q,
228
+ void 0,
229
+ error,
230
+ variables,
231
+ this.state.context,
232
+ mutationFnContext
233
+ ));
234
+ } catch (e) {
235
+ void Promise.reject(e);
236
+ }
237
+ __privateMethod(this, _Mutation_instances, dispatch_fn).call(this, { type: "error", error });
238
+ throw error;
239
+ } finally {
240
+ __privateGet(this, _mutationCache).runNext(this);
241
+ }
242
+ }
243
+ };
244
+ _client = new WeakMap();
245
+ _observers = new WeakMap();
246
+ _mutationCache = new WeakMap();
247
+ _retryer = new WeakMap();
248
+ _Mutation_instances = new WeakSet();
249
+ dispatch_fn = function(action) {
250
+ const reducer = (state) => {
251
+ switch (action.type) {
252
+ case "failed":
253
+ return {
254
+ ...state,
255
+ failureCount: action.failureCount,
256
+ failureReason: action.error
257
+ };
258
+ case "pause":
259
+ return {
260
+ ...state,
261
+ isPaused: true
262
+ };
263
+ case "continue":
264
+ return {
265
+ ...state,
266
+ isPaused: false
267
+ };
268
+ case "pending":
269
+ return {
270
+ ...state,
271
+ context: action.context,
272
+ data: void 0,
273
+ failureCount: 0,
274
+ failureReason: null,
275
+ error: null,
276
+ isPaused: action.isPaused,
277
+ status: "pending",
278
+ variables: action.variables,
279
+ submittedAt: Date.now()
280
+ };
281
+ case "success":
282
+ return {
283
+ ...state,
284
+ data: action.data,
285
+ failureCount: 0,
286
+ failureReason: null,
287
+ error: null,
288
+ status: "success",
289
+ isPaused: false
290
+ };
291
+ case "error":
292
+ return {
293
+ ...state,
294
+ data: void 0,
295
+ error: action.error,
296
+ failureCount: state.failureCount + 1,
297
+ failureReason: action.error,
298
+ isPaused: false,
299
+ status: "error"
300
+ };
301
+ }
302
+ };
303
+ this.state = reducer(this.state);
304
+ import_notifyManager.notifyManager.batch(() => {
305
+ __privateGet(this, _observers).forEach((observer) => {
306
+ observer.onMutationUpdate(action);
307
+ });
308
+ __privateGet(this, _mutationCache).notify({
309
+ mutation: this,
310
+ type: "updated",
311
+ action
312
+ });
313
+ });
314
+ };
315
+ function getDefaultState() {
316
+ return {
317
+ context: void 0,
318
+ data: void 0,
319
+ error: null,
320
+ failureCount: 0,
321
+ failureReason: null,
322
+ isPaused: false,
323
+ status: "idle",
324
+ variables: void 0,
325
+ submittedAt: 0
326
+ };
327
+ }
328
+ // Annotate the CommonJS export names for ESM import in node:
329
+ 0 && (module.exports = {
330
+ Mutation,
331
+ getDefaultState
332
+ });
333
+ //# sourceMappingURL=mutation.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/mutation.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport { Removable } from './removable'\nimport { createRetryer } from './retryer'\nimport type {\n DefaultError,\n MutationFunctionContext,\n MutationMeta,\n MutationOptions,\n MutationStatus,\n} from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport type { Retryer } from './retryer'\nimport type { QueryClient } from './queryClient'\n\n// TYPES\n\ninterface MutationConfig<TData, TError, TVariables, TOnMutateResult> {\n client: QueryClient\n mutationId: number\n mutationCache: MutationCache\n options: MutationOptions<TData, TError, TVariables, TOnMutateResult>\n state?: MutationState<TData, TError, TVariables, TOnMutateResult>\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = DefaultError,\n TVariables = unknown,\n TOnMutateResult = unknown,\n> {\n context: TOnMutateResult | undefined\n data: TData | undefined\n error: TError | null\n failureCount: number\n failureReason: TError | null\n isPaused: boolean\n status: MutationStatus\n variables: TVariables | undefined\n submittedAt: number\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError | null\n}\n\ninterface PendingAction<TVariables, TOnMutateResult> {\n type: 'pending'\n isPaused: boolean\n variables?: TVariables\n context?: TOnMutateResult\n}\n\ninterface SuccessAction<TData> {\n type: 'success'\n data: TData\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\nexport type Action<TData, TError, TVariables, TOnMutateResult> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | PendingAction<TVariables, TOnMutateResult>\n | PauseAction\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = unknown,\n TOnMutateResult = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TOnMutateResult>\n options!: MutationOptions<TData, TError, TVariables, TOnMutateResult>\n readonly mutationId: number\n\n #client: QueryClient\n #observers: Array<\n MutationObserver<TData, TError, TVariables, TOnMutateResult>\n >\n #mutationCache: MutationCache\n #retryer?: Retryer<TData>\n\n constructor(\n config: MutationConfig<TData, TError, TVariables, TOnMutateResult>,\n ) {\n super()\n\n this.#client = config.client\n this.mutationId = config.mutationId\n this.#mutationCache = config.mutationCache\n this.#observers = []\n this.state = config.state || getDefaultState()\n\n this.setOptions(config.options)\n this.scheduleGc()\n }\n\n setOptions(\n options: MutationOptions<TData, TError, TVariables, TOnMutateResult>,\n ): void {\n this.options = options\n\n this.updateGcTime(this.options.gcTime)\n }\n\n get meta(): MutationMeta | undefined {\n return this.options.meta\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer)\n\n // Stop the mutation from being garbage collected\n this.clearGcTimeout()\n\n this.#mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer,\n })\n }\n }\n\n removeObserver(observer: MutationObserver<any, any, any, any>): void {\n this.#observers = this.#observers.filter((x) => x !== observer)\n\n this.scheduleGc()\n\n this.#mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer,\n })\n }\n\n protected optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === 'pending') {\n this.scheduleGc()\n } else {\n this.#mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<unknown> {\n return (\n this.#retryer?.continue() ??\n // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables!)\n )\n }\n\n async execute(variables: TVariables): Promise<TData> {\n const onContinue = () => {\n this.#dispatch({ type: 'continue' })\n }\n\n const mutationFnContext = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey,\n } satisfies MutationFunctionContext\n\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error('No mutationFn found'))\n }\n\n return this.options.mutationFn(variables, mutationFnContext)\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue,\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this),\n })\n\n const restored = this.state.status === 'pending'\n const isPaused = !this.#retryer.canStart()\n\n try {\n if (restored) {\n // Dispatch continue action to unpause restored mutation\n onContinue()\n } else {\n this.#dispatch({ type: 'pending', variables, isPaused })\n // Notify cache callback\n if (this.#mutationCache.config.onMutate) {\n await this.#mutationCache.config.onMutate(\n variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n mutationFnContext,\n )\n }\n const context = await this.options.onMutate?.(\n variables,\n mutationFnContext,\n )\n if (context !== this.state.context) {\n this.#dispatch({\n type: 'pending',\n context,\n variables,\n isPaused,\n })\n }\n }\n const data = await this.#retryer.start()\n\n // Notify cache callback\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n mutationFnContext,\n )\n\n await this.options.onSuccess?.(\n data,\n variables,\n this.state.context!,\n mutationFnContext,\n )\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n mutationFnContext,\n )\n\n await this.options.onSettled?.(\n data,\n null,\n variables,\n this.state.context,\n mutationFnContext,\n )\n\n this.#dispatch({ type: 'success', data })\n return data\n } catch (error) {\n try {\n // Notify cache callback\n await this.#mutationCache.config.onError?.(\n error as any,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n mutationFnContext,\n )\n } catch (e) {\n void Promise.reject(e)\n }\n\n try {\n await this.options.onError?.(\n error as TError,\n variables,\n this.state.context,\n mutationFnContext,\n )\n } catch (e) {\n void Promise.reject(e)\n }\n\n try {\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n undefined,\n error as any,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n mutationFnContext,\n )\n } catch (e) {\n void Promise.reject(e)\n }\n\n try {\n await this.options.onSettled?.(\n undefined,\n error as TError,\n variables,\n this.state.context,\n mutationFnContext,\n )\n } catch (e) {\n void Promise.reject(e)\n }\n\n this.#dispatch({ type: 'error', error: error as TError })\n throw error\n } finally {\n this.#mutationCache.runNext(this)\n }\n }\n\n #dispatch(action: Action<TData, TError, TVariables, TOnMutateResult>): void {\n const reducer = (\n state: MutationState<TData, TError, TVariables, TOnMutateResult>,\n ): MutationState<TData, TError, TVariables, TOnMutateResult> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n isPaused: true,\n }\n case 'continue':\n return {\n ...state,\n isPaused: false,\n }\n case 'pending':\n return {\n ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: 'pending',\n variables: action.variables,\n submittedAt: Date.now(),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false,\n }\n case 'error':\n return {\n ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error',\n }\n }\n }\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action)\n })\n this.#mutationCache.notify({\n mutation: this,\n type: 'updated',\n action,\n })\n })\n }\n}\n\nexport function getDefaultState<\n TData,\n TError,\n TVariables,\n TOnMutateResult,\n>(): MutationState<TData, TError, TVariables, TOnMutateResult> {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined,\n submittedAt: 0,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAA8B;AAC9B,uBAA0B;AAC1B,qBAA8B;AAF9B;AAmFO,IAAM,WAAN,cAKG,2BAAU;AAAA,EAYlB,YACE,QACA;AACA,UAAM;AApBH;AAUL;AACA;AAGA;AACA;AAOE,uBAAK,SAAU,OAAO;AACtB,SAAK,aAAa,OAAO;AACzB,uBAAK,gBAAiB,OAAO;AAC7B,uBAAK,YAAa,CAAC;AACnB,SAAK,QAAQ,OAAO,SAAS,gBAAgB;AAE7C,SAAK,WAAW,OAAO,OAAO;AAC9B,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,WACE,SACM;AACN,SAAK,UAAU;AAEf,SAAK,aAAa,KAAK,QAAQ,MAAM;AAAA,EACvC;AAAA,EAEA,IAAI,OAAiC;AACnC,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,YAAY,UAAsD;AAChE,QAAI,CAAC,mBAAK,YAAW,SAAS,QAAQ,GAAG;AACvC,yBAAK,YAAW,KAAK,QAAQ;AAG7B,WAAK,eAAe;AAEpB,yBAAK,gBAAe,OAAO;AAAA,QACzB,MAAM;AAAA,QACN,UAAU;AAAA,QACV;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,eAAe,UAAsD;AACnE,uBAAK,YAAa,mBAAK,YAAW,OAAO,CAAC,MAAM,MAAM,QAAQ;AAE9D,SAAK,WAAW;AAEhB,uBAAK,gBAAe,OAAO;AAAA,MACzB,MAAM;AAAA,MACN,UAAU;AAAA,MACV;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEU,iBAAiB;AACzB,QAAI,CAAC,mBAAK,YAAW,QAAQ;AAC3B,UAAI,KAAK,MAAM,WAAW,WAAW;AACnC,aAAK,WAAW;AAAA,MAClB,OAAO;AACL,2BAAK,gBAAe,OAAO,IAAI;AAAA,MACjC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,WAA6B;AApK/B;AAqKI,aACE,wBAAK,cAAL,mBAAe;AAAA,IAEf,KAAK,QAAQ,KAAK,MAAM,SAAU;AAAA,EAEtC;AAAA,EAEA,MAAM,QAAQ,WAAuC;AA5KvD;AA6KI,UAAM,aAAa,MAAM;AACvB,4BAAK,kCAAL,WAAe,EAAE,MAAM,WAAW;AAAA,IACpC;AAEA,UAAM,oBAAoB;AAAA,MACxB,QAAQ,mBAAK;AAAA,MACb,MAAM,KAAK,QAAQ;AAAA,MACnB,aAAa,KAAK,QAAQ;AAAA,IAC5B;AAEA,uBAAK,cAAW,8BAAc;AAAA,MAC5B,IAAI,MAAM;AACR,YAAI,CAAC,KAAK,QAAQ,YAAY;AAC5B,iBAAO,QAAQ,OAAO,IAAI,MAAM,qBAAqB,CAAC;AAAA,QACxD;AAEA,eAAO,KAAK,QAAQ,WAAW,WAAW,iBAAiB;AAAA,MAC7D;AAAA,MACA,QAAQ,CAAC,cAAc,UAAU;AAC/B,8BAAK,kCAAL,WAAe,EAAE,MAAM,UAAU,cAAc,MAAM;AAAA,MACvD;AAAA,MACA,SAAS,MAAM;AACb,8BAAK,kCAAL,WAAe,EAAE,MAAM,QAAQ;AAAA,MACjC;AAAA,MACA;AAAA,MACA,OAAO,KAAK,QAAQ,SAAS;AAAA,MAC7B,YAAY,KAAK,QAAQ;AAAA,MACzB,aAAa,KAAK,QAAQ;AAAA,MAC1B,QAAQ,MAAM,mBAAK,gBAAe,OAAO,IAAI;AAAA,IAC/C,CAAC;AAED,UAAM,WAAW,KAAK,MAAM,WAAW;AACvC,UAAM,WAAW,CAAC,mBAAK,UAAS,SAAS;AAEzC,QAAI;AACF,UAAI,UAAU;AAEZ,mBAAW;AAAA,MACb,OAAO;AACL,8BAAK,kCAAL,WAAe,EAAE,MAAM,WAAW,WAAW,SAAS;AAEtD,YAAI,mBAAK,gBAAe,OAAO,UAAU;AACvC,gBAAM,mBAAK,gBAAe,OAAO;AAAA,YAC/B;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AACA,cAAM,UAAU,QAAM,gBAAK,SAAQ,aAAb;AAAA;AAAA,UACpB;AAAA,UACA;AAAA;AAEF,YAAI,YAAY,KAAK,MAAM,SAAS;AAClC,gCAAK,kCAAL,WAAe;AAAA,YACb,MAAM;AAAA,YACN;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,MACF;AACA,YAAM,OAAO,MAAM,mBAAK,UAAS,MAAM;AAGvC,cAAM,8BAAK,gBAAe,QAAO,cAA3B;AAAA;AAAA,QACJ;AAAA,QACA;AAAA,QACA,KAAK,MAAM;AAAA,QACX;AAAA,QACA;AAAA;AAGF,cAAM,gBAAK,SAAQ,cAAb;AAAA;AAAA,QACJ;AAAA,QACA;AAAA,QACA,KAAK,MAAM;AAAA,QACX;AAAA;AAIF,cAAM,8BAAK,gBAAe,QAAO,cAA3B;AAAA;AAAA,QACJ;AAAA,QACA;AAAA,QACA,KAAK,MAAM;AAAA,QACX,KAAK,MAAM;AAAA,QACX;AAAA,QACA;AAAA;AAGF,cAAM,gBAAK,SAAQ,cAAb;AAAA;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA,KAAK,MAAM;AAAA,QACX;AAAA;AAGF,4BAAK,kCAAL,WAAe,EAAE,MAAM,WAAW,KAAK;AACvC,aAAO;AAAA,IACT,SAAS,OAAO;AACd,UAAI;AAEF,gBAAM,8BAAK,gBAAe,QAAO,YAA3B;AAAA;AAAA,UACJ;AAAA,UACA;AAAA,UACA,KAAK,MAAM;AAAA,UACX;AAAA,UACA;AAAA;AAAA,MAEJ,SAAS,GAAG;AACV,aAAK,QAAQ,OAAO,CAAC;AAAA,MACvB;AAEA,UAAI;AACF,gBAAM,gBAAK,SAAQ,YAAb;AAAA;AAAA,UACJ;AAAA,UACA;AAAA,UACA,KAAK,MAAM;AAAA,UACX;AAAA;AAAA,MAEJ,SAAS,GAAG;AACV,aAAK,QAAQ,OAAO,CAAC;AAAA,MACvB;AAEA,UAAI;AAEF,gBAAM,8BAAK,gBAAe,QAAO,cAA3B;AAAA;AAAA,UACJ;AAAA,UACA;AAAA,UACA,KAAK,MAAM;AAAA,UACX,KAAK,MAAM;AAAA,UACX;AAAA,UACA;AAAA;AAAA,MAEJ,SAAS,GAAG;AACV,aAAK,QAAQ,OAAO,CAAC;AAAA,MACvB;AAEA,UAAI;AACF,gBAAM,gBAAK,SAAQ,cAAb;AAAA;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA,KAAK,MAAM;AAAA,UACX;AAAA;AAAA,MAEJ,SAAS,GAAG;AACV,aAAK,QAAQ,OAAO,CAAC;AAAA,MACvB;AAEA,4BAAK,kCAAL,WAAe,EAAE,MAAM,SAAS,MAAuB;AACvD,YAAM;AAAA,IACR,UAAE;AACA,yBAAK,gBAAe,QAAQ,IAAI;AAAA,IAClC;AAAA,EACF;AAuEF;AAlTE;AACA;AAGA;AACA;AAfK;AAuPL,cAAS,SAAC,QAAkE;AAC1E,QAAM,UAAU,CACd,UAC8D;AAC9D,YAAQ,OAAO,MAAM;AAAA,MACnB,KAAK;AACH,eAAO;AAAA,UACL,GAAG;AAAA,UACH,cAAc,OAAO;AAAA,UACrB,eAAe,OAAO;AAAA,QACxB;AAAA,MACF,KAAK;AACH,eAAO;AAAA,UACL,GAAG;AAAA,UACH,UAAU;AAAA,QACZ;AAAA,MACF,KAAK;AACH,eAAO;AAAA,UACL,GAAG;AAAA,UACH,UAAU;AAAA,QACZ;AAAA,MACF,KAAK;AACH,eAAO;AAAA,UACL,GAAG;AAAA,UACH,SAAS,OAAO;AAAA,UAChB,MAAM;AAAA,UACN,cAAc;AAAA,UACd,eAAe;AAAA,UACf,OAAO;AAAA,UACP,UAAU,OAAO;AAAA,UACjB,QAAQ;AAAA,UACR,WAAW,OAAO;AAAA,UAClB,aAAa,KAAK,IAAI;AAAA,QACxB;AAAA,MACF,KAAK;AACH,eAAO;AAAA,UACL,GAAG;AAAA,UACH,MAAM,OAAO;AAAA,UACb,cAAc;AAAA,UACd,eAAe;AAAA,UACf,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,UAAU;AAAA,QACZ;AAAA,MACF,KAAK;AACH,eAAO;AAAA,UACL,GAAG;AAAA,UACH,MAAM;AAAA,UACN,OAAO,OAAO;AAAA,UACd,cAAc,MAAM,eAAe;AAAA,UACnC,eAAe,OAAO;AAAA,UACtB,UAAU;AAAA,UACV,QAAQ;AAAA,QACV;AAAA,IACJ;AAAA,EACF;AACA,OAAK,QAAQ,QAAQ,KAAK,KAAK;AAE/B,qCAAc,MAAM,MAAM;AACxB,uBAAK,YAAW,QAAQ,CAAC,aAAa;AACpC,eAAS,iBAAiB,MAAM;AAAA,IAClC,CAAC;AACD,uBAAK,gBAAe,OAAO;AAAA,MACzB,UAAU;AAAA,MACV,MAAM;AAAA,MACN;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;AAGK,SAAS,kBAK+C;AAC7D,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,cAAc;AAAA,IACd,eAAe;AAAA,IACf,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,aAAa;AAAA,EACf;AACF;","names":[]}
@@ -0,0 +1,4 @@
1
+ export { getDefaultState } from './_tsup-dts-rollup.cjs';
2
+ export { MutationState_alias_1 as MutationState } from './_tsup-dts-rollup.cjs';
3
+ export { Action } from './_tsup-dts-rollup.cjs';
4
+ export { Mutation_alias_1 as Mutation } from './_tsup-dts-rollup.cjs';
@@ -0,0 +1,4 @@
1
+ export { getDefaultState } from './_tsup-dts-rollup.js';
2
+ export { MutationState_alias_1 as MutationState } from './_tsup-dts-rollup.js';
3
+ export { Action } from './_tsup-dts-rollup.js';
4
+ export { Mutation_alias_1 as Mutation } from './_tsup-dts-rollup.js';
@@ -0,0 +1,306 @@
1
+ import {
2
+ __privateAdd,
3
+ __privateGet,
4
+ __privateMethod,
5
+ __privateSet
6
+ } from "./chunk-PXG64RU4.js";
7
+
8
+ // src/mutation.ts
9
+ import { notifyManager } from "./notifyManager.js";
10
+ import { Removable } from "./removable.js";
11
+ import { createRetryer } from "./retryer.js";
12
+ var _client, _observers, _mutationCache, _retryer, _Mutation_instances, dispatch_fn;
13
+ var Mutation = class extends Removable {
14
+ constructor(config) {
15
+ super();
16
+ __privateAdd(this, _Mutation_instances);
17
+ __privateAdd(this, _client);
18
+ __privateAdd(this, _observers);
19
+ __privateAdd(this, _mutationCache);
20
+ __privateAdd(this, _retryer);
21
+ __privateSet(this, _client, config.client);
22
+ this.mutationId = config.mutationId;
23
+ __privateSet(this, _mutationCache, config.mutationCache);
24
+ __privateSet(this, _observers, []);
25
+ this.state = config.state || getDefaultState();
26
+ this.setOptions(config.options);
27
+ this.scheduleGc();
28
+ }
29
+ setOptions(options) {
30
+ this.options = options;
31
+ this.updateGcTime(this.options.gcTime);
32
+ }
33
+ get meta() {
34
+ return this.options.meta;
35
+ }
36
+ addObserver(observer) {
37
+ if (!__privateGet(this, _observers).includes(observer)) {
38
+ __privateGet(this, _observers).push(observer);
39
+ this.clearGcTimeout();
40
+ __privateGet(this, _mutationCache).notify({
41
+ type: "observerAdded",
42
+ mutation: this,
43
+ observer
44
+ });
45
+ }
46
+ }
47
+ removeObserver(observer) {
48
+ __privateSet(this, _observers, __privateGet(this, _observers).filter((x) => x !== observer));
49
+ this.scheduleGc();
50
+ __privateGet(this, _mutationCache).notify({
51
+ type: "observerRemoved",
52
+ mutation: this,
53
+ observer
54
+ });
55
+ }
56
+ optionalRemove() {
57
+ if (!__privateGet(this, _observers).length) {
58
+ if (this.state.status === "pending") {
59
+ this.scheduleGc();
60
+ } else {
61
+ __privateGet(this, _mutationCache).remove(this);
62
+ }
63
+ }
64
+ }
65
+ continue() {
66
+ var _a;
67
+ return ((_a = __privateGet(this, _retryer)) == null ? void 0 : _a.continue()) ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before
68
+ this.execute(this.state.variables);
69
+ }
70
+ async execute(variables) {
71
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;
72
+ const onContinue = () => {
73
+ __privateMethod(this, _Mutation_instances, dispatch_fn).call(this, { type: "continue" });
74
+ };
75
+ const mutationFnContext = {
76
+ client: __privateGet(this, _client),
77
+ meta: this.options.meta,
78
+ mutationKey: this.options.mutationKey
79
+ };
80
+ __privateSet(this, _retryer, createRetryer({
81
+ fn: () => {
82
+ if (!this.options.mutationFn) {
83
+ return Promise.reject(new Error("No mutationFn found"));
84
+ }
85
+ return this.options.mutationFn(variables, mutationFnContext);
86
+ },
87
+ onFail: (failureCount, error) => {
88
+ __privateMethod(this, _Mutation_instances, dispatch_fn).call(this, { type: "failed", failureCount, error });
89
+ },
90
+ onPause: () => {
91
+ __privateMethod(this, _Mutation_instances, dispatch_fn).call(this, { type: "pause" });
92
+ },
93
+ onContinue,
94
+ retry: this.options.retry ?? 0,
95
+ retryDelay: this.options.retryDelay,
96
+ networkMode: this.options.networkMode,
97
+ canRun: () => __privateGet(this, _mutationCache).canRun(this)
98
+ }));
99
+ const restored = this.state.status === "pending";
100
+ const isPaused = !__privateGet(this, _retryer).canStart();
101
+ try {
102
+ if (restored) {
103
+ onContinue();
104
+ } else {
105
+ __privateMethod(this, _Mutation_instances, dispatch_fn).call(this, { type: "pending", variables, isPaused });
106
+ if (__privateGet(this, _mutationCache).config.onMutate) {
107
+ await __privateGet(this, _mutationCache).config.onMutate(
108
+ variables,
109
+ this,
110
+ mutationFnContext
111
+ );
112
+ }
113
+ const context = await ((_b = (_a = this.options).onMutate) == null ? void 0 : _b.call(
114
+ _a,
115
+ variables,
116
+ mutationFnContext
117
+ ));
118
+ if (context !== this.state.context) {
119
+ __privateMethod(this, _Mutation_instances, dispatch_fn).call(this, {
120
+ type: "pending",
121
+ context,
122
+ variables,
123
+ isPaused
124
+ });
125
+ }
126
+ }
127
+ const data = await __privateGet(this, _retryer).start();
128
+ await ((_d = (_c = __privateGet(this, _mutationCache).config).onSuccess) == null ? void 0 : _d.call(
129
+ _c,
130
+ data,
131
+ variables,
132
+ this.state.context,
133
+ this,
134
+ mutationFnContext
135
+ ));
136
+ await ((_f = (_e = this.options).onSuccess) == null ? void 0 : _f.call(
137
+ _e,
138
+ data,
139
+ variables,
140
+ this.state.context,
141
+ mutationFnContext
142
+ ));
143
+ await ((_h = (_g = __privateGet(this, _mutationCache).config).onSettled) == null ? void 0 : _h.call(
144
+ _g,
145
+ data,
146
+ null,
147
+ this.state.variables,
148
+ this.state.context,
149
+ this,
150
+ mutationFnContext
151
+ ));
152
+ await ((_j = (_i = this.options).onSettled) == null ? void 0 : _j.call(
153
+ _i,
154
+ data,
155
+ null,
156
+ variables,
157
+ this.state.context,
158
+ mutationFnContext
159
+ ));
160
+ __privateMethod(this, _Mutation_instances, dispatch_fn).call(this, { type: "success", data });
161
+ return data;
162
+ } catch (error) {
163
+ try {
164
+ await ((_l = (_k = __privateGet(this, _mutationCache).config).onError) == null ? void 0 : _l.call(
165
+ _k,
166
+ error,
167
+ variables,
168
+ this.state.context,
169
+ this,
170
+ mutationFnContext
171
+ ));
172
+ } catch (e) {
173
+ void Promise.reject(e);
174
+ }
175
+ try {
176
+ await ((_n = (_m = this.options).onError) == null ? void 0 : _n.call(
177
+ _m,
178
+ error,
179
+ variables,
180
+ this.state.context,
181
+ mutationFnContext
182
+ ));
183
+ } catch (e) {
184
+ void Promise.reject(e);
185
+ }
186
+ try {
187
+ await ((_p = (_o = __privateGet(this, _mutationCache).config).onSettled) == null ? void 0 : _p.call(
188
+ _o,
189
+ void 0,
190
+ error,
191
+ this.state.variables,
192
+ this.state.context,
193
+ this,
194
+ mutationFnContext
195
+ ));
196
+ } catch (e) {
197
+ void Promise.reject(e);
198
+ }
199
+ try {
200
+ await ((_r = (_q = this.options).onSettled) == null ? void 0 : _r.call(
201
+ _q,
202
+ void 0,
203
+ error,
204
+ variables,
205
+ this.state.context,
206
+ mutationFnContext
207
+ ));
208
+ } catch (e) {
209
+ void Promise.reject(e);
210
+ }
211
+ __privateMethod(this, _Mutation_instances, dispatch_fn).call(this, { type: "error", error });
212
+ throw error;
213
+ } finally {
214
+ __privateGet(this, _mutationCache).runNext(this);
215
+ }
216
+ }
217
+ };
218
+ _client = new WeakMap();
219
+ _observers = new WeakMap();
220
+ _mutationCache = new WeakMap();
221
+ _retryer = new WeakMap();
222
+ _Mutation_instances = new WeakSet();
223
+ dispatch_fn = function(action) {
224
+ const reducer = (state) => {
225
+ switch (action.type) {
226
+ case "failed":
227
+ return {
228
+ ...state,
229
+ failureCount: action.failureCount,
230
+ failureReason: action.error
231
+ };
232
+ case "pause":
233
+ return {
234
+ ...state,
235
+ isPaused: true
236
+ };
237
+ case "continue":
238
+ return {
239
+ ...state,
240
+ isPaused: false
241
+ };
242
+ case "pending":
243
+ return {
244
+ ...state,
245
+ context: action.context,
246
+ data: void 0,
247
+ failureCount: 0,
248
+ failureReason: null,
249
+ error: null,
250
+ isPaused: action.isPaused,
251
+ status: "pending",
252
+ variables: action.variables,
253
+ submittedAt: Date.now()
254
+ };
255
+ case "success":
256
+ return {
257
+ ...state,
258
+ data: action.data,
259
+ failureCount: 0,
260
+ failureReason: null,
261
+ error: null,
262
+ status: "success",
263
+ isPaused: false
264
+ };
265
+ case "error":
266
+ return {
267
+ ...state,
268
+ data: void 0,
269
+ error: action.error,
270
+ failureCount: state.failureCount + 1,
271
+ failureReason: action.error,
272
+ isPaused: false,
273
+ status: "error"
274
+ };
275
+ }
276
+ };
277
+ this.state = reducer(this.state);
278
+ notifyManager.batch(() => {
279
+ __privateGet(this, _observers).forEach((observer) => {
280
+ observer.onMutationUpdate(action);
281
+ });
282
+ __privateGet(this, _mutationCache).notify({
283
+ mutation: this,
284
+ type: "updated",
285
+ action
286
+ });
287
+ });
288
+ };
289
+ function getDefaultState() {
290
+ return {
291
+ context: void 0,
292
+ data: void 0,
293
+ error: null,
294
+ failureCount: 0,
295
+ failureReason: null,
296
+ isPaused: false,
297
+ status: "idle",
298
+ variables: void 0,
299
+ submittedAt: 0
300
+ };
301
+ }
302
+ export {
303
+ Mutation,
304
+ getDefaultState
305
+ };
306
+ //# sourceMappingURL=mutation.js.map