@tanstack/query-core 5.0.0-alpha.6 → 5.0.0-alpha.63

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 (286) hide show
  1. package/build/lib/_virtual/{_rollupPluginBabelHelpers.js → _rollupPluginBabelHelpers.legacy.cjs} +1 -1
  2. package/build/lib/_virtual/_rollupPluginBabelHelpers.legacy.cjs.map +1 -0
  3. package/build/lib/_virtual/{_rollupPluginBabelHelpers.esm.js → _rollupPluginBabelHelpers.legacy.js} +1 -1
  4. package/build/lib/_virtual/_rollupPluginBabelHelpers.legacy.js.map +1 -0
  5. package/build/lib/{focusManager.mjs → focusManager.cjs} +9 -6
  6. package/build/lib/{focusManager.mjs.map → focusManager.cjs.map} +1 -1
  7. package/build/lib/focusManager.d.ts +2 -1
  8. package/build/lib/focusManager.d.ts.map +1 -0
  9. package/build/lib/focusManager.js +20 -39
  10. package/build/lib/focusManager.js.map +1 -1
  11. package/build/lib/focusManager.legacy.cjs +90 -0
  12. package/build/lib/focusManager.legacy.cjs.map +1 -0
  13. package/build/lib/{focusManager.esm.js → focusManager.legacy.js} +4 -4
  14. package/build/lib/focusManager.legacy.js.map +1 -0
  15. package/build/lib/{hydration.mjs → hydration.cjs} +11 -20
  16. package/build/lib/hydration.cjs.map +1 -0
  17. package/build/lib/hydration.d.ts +3 -6
  18. package/build/lib/hydration.d.ts.map +1 -0
  19. package/build/lib/hydration.js +7 -28
  20. package/build/lib/hydration.js.map +1 -1
  21. package/build/lib/hydration.legacy.cjs +92 -0
  22. package/build/lib/hydration.legacy.cjs.map +1 -0
  23. package/build/lib/{hydration.esm.js → hydration.legacy.js} +6 -19
  24. package/build/lib/hydration.legacy.js.map +1 -0
  25. package/build/lib/index.cjs +40 -0
  26. package/build/lib/index.cjs.map +1 -0
  27. package/build/lib/index.d.ts +5 -3
  28. package/build/lib/index.d.ts.map +1 -0
  29. package/build/lib/index.js +13 -39
  30. package/build/lib/index.js.map +1 -1
  31. package/build/lib/index.legacy.cjs +40 -0
  32. package/build/lib/index.legacy.cjs.map +1 -0
  33. package/build/lib/index.legacy.js +14 -0
  34. package/build/lib/index.legacy.js.map +1 -0
  35. package/build/lib/{infiniteQueryBehavior.mjs → infiniteQueryBehavior.cjs} +8 -4
  36. package/build/lib/{infiniteQueryBehavior.mjs.map → infiniteQueryBehavior.cjs.map} +1 -1
  37. package/build/lib/infiniteQueryBehavior.d.ts +1 -0
  38. package/build/lib/infiniteQueryBehavior.d.ts.map +1 -0
  39. package/build/lib/infiniteQueryBehavior.js +7 -12
  40. package/build/lib/infiniteQueryBehavior.js.map +1 -1
  41. package/build/lib/infiniteQueryBehavior.legacy.cjs +131 -0
  42. package/build/lib/infiniteQueryBehavior.legacy.cjs.map +1 -0
  43. package/build/lib/{infiniteQueryBehavior.esm.js → infiniteQueryBehavior.legacy.js} +2 -2
  44. package/build/lib/infiniteQueryBehavior.legacy.js.map +1 -0
  45. package/build/lib/{infiniteQueryObserver.mjs → infiniteQueryObserver.cjs} +11 -9
  46. package/build/lib/{infiniteQueryObserver.mjs.map → infiniteQueryObserver.cjs.map} +1 -1
  47. package/build/lib/infiniteQueryObserver.d.ts +2 -1
  48. package/build/lib/infiniteQueryObserver.d.ts.map +1 -0
  49. package/build/lib/infiniteQueryObserver.js +10 -13
  50. package/build/lib/infiniteQueryObserver.js.map +1 -1
  51. package/build/lib/infiniteQueryObserver.legacy.cjs +78 -0
  52. package/build/lib/infiniteQueryObserver.legacy.cjs.map +1 -0
  53. package/build/lib/{infiniteQueryObserver.esm.js → infiniteQueryObserver.legacy.js} +3 -3
  54. package/build/lib/infiniteQueryObserver.legacy.js.map +1 -0
  55. package/build/lib/{mutation.mjs → mutation.cjs} +13 -10
  56. package/build/lib/mutation.cjs.map +1 -0
  57. package/build/lib/mutation.d.ts +2 -1
  58. package/build/lib/mutation.d.ts.map +1 -0
  59. package/build/lib/mutation.js +107 -135
  60. package/build/lib/mutation.js.map +1 -1
  61. package/build/lib/mutation.legacy.cjs +262 -0
  62. package/build/lib/mutation.legacy.cjs.map +1 -0
  63. package/build/lib/{mutation.esm.js → mutation.legacy.js} +6 -6
  64. package/build/lib/mutation.legacy.js.map +1 -0
  65. package/build/lib/{mutationCache.mjs → mutationCache.cjs} +21 -18
  66. package/build/lib/mutationCache.cjs.map +1 -0
  67. package/build/lib/mutationCache.d.ts +3 -2
  68. package/build/lib/mutationCache.d.ts.map +1 -0
  69. package/build/lib/mutationCache.js +33 -47
  70. package/build/lib/mutationCache.js.map +1 -1
  71. package/build/lib/mutationCache.legacy.cjs +98 -0
  72. package/build/lib/mutationCache.legacy.cjs.map +1 -0
  73. package/build/lib/{mutationCache.esm.js → mutationCache.legacy.js} +11 -10
  74. package/build/lib/mutationCache.legacy.js.map +1 -0
  75. package/build/lib/{mutationObserver.mjs → mutationObserver.cjs} +13 -11
  76. package/build/lib/mutationObserver.cjs.map +1 -0
  77. package/build/lib/mutationObserver.d.ts +2 -1
  78. package/build/lib/mutationObserver.d.ts.map +1 -0
  79. package/build/lib/mutationObserver.js +59 -91
  80. package/build/lib/mutationObserver.js.map +1 -1
  81. package/build/lib/mutationObserver.legacy.cjs +128 -0
  82. package/build/lib/mutationObserver.legacy.cjs.map +1 -0
  83. package/build/lib/{mutationObserver.esm.js → mutationObserver.legacy.js} +7 -7
  84. package/build/lib/mutationObserver.legacy.js.map +1 -0
  85. package/build/lib/{notifyManager.mjs → notifyManager.cjs} +8 -5
  86. package/build/lib/{notifyManager.mjs.map → notifyManager.cjs.map} +1 -1
  87. package/build/lib/notifyManager.d.ts +4 -3
  88. package/build/lib/notifyManager.d.ts.map +1 -0
  89. package/build/lib/notifyManager.js +4 -7
  90. package/build/lib/notifyManager.js.map +1 -1
  91. package/build/lib/notifyManager.legacy.cjs +92 -0
  92. package/build/lib/notifyManager.legacy.cjs.map +1 -0
  93. package/build/lib/{notifyManager.esm.js → notifyManager.legacy.js} +2 -2
  94. package/build/lib/notifyManager.legacy.js.map +1 -0
  95. package/build/lib/{onlineManager.mjs → onlineManager.cjs} +16 -10
  96. package/build/lib/onlineManager.cjs.map +1 -0
  97. package/build/lib/onlineManager.d.ts +2 -1
  98. package/build/lib/onlineManager.d.ts.map +1 -0
  99. package/build/lib/onlineManager.js +26 -41
  100. package/build/lib/onlineManager.js.map +1 -1
  101. package/build/lib/onlineManager.legacy.cjs +94 -0
  102. package/build/lib/onlineManager.legacy.cjs.map +1 -0
  103. package/build/lib/{onlineManager.esm.js → onlineManager.legacy.js} +11 -8
  104. package/build/lib/onlineManager.legacy.js.map +1 -0
  105. package/build/lib/{queriesObserver.mjs → queriesObserver.cjs} +51 -26
  106. package/build/lib/queriesObserver.cjs.map +1 -0
  107. package/build/lib/queriesObserver.d.ts +14 -6
  108. package/build/lib/queriesObserver.d.ts.map +1 -0
  109. package/build/lib/queriesObserver.js +99 -107
  110. package/build/lib/queriesObserver.js.map +1 -1
  111. package/build/lib/queriesObserver.legacy.cjs +207 -0
  112. package/build/lib/queriesObserver.legacy.cjs.map +1 -0
  113. package/build/lib/{queriesObserver.esm.js → queriesObserver.legacy.js} +62 -22
  114. package/build/lib/queriesObserver.legacy.js.map +1 -0
  115. package/build/lib/{query.mjs → query.cjs} +22 -20
  116. package/build/lib/query.cjs.map +1 -0
  117. package/build/lib/query.d.ts +3 -2
  118. package/build/lib/query.d.ts.map +1 -0
  119. package/build/lib/query.js +173 -224
  120. package/build/lib/query.js.map +1 -1
  121. package/build/lib/query.legacy.cjs +471 -0
  122. package/build/lib/query.legacy.cjs.map +1 -0
  123. package/build/lib/{query.esm.js → query.legacy.js} +10 -10
  124. package/build/lib/query.legacy.js.map +1 -0
  125. package/build/lib/{queryCache.mjs → queryCache.cjs} +28 -23
  126. package/build/lib/queryCache.cjs.map +1 -0
  127. package/build/lib/queryCache.d.ts +3 -3
  128. package/build/lib/queryCache.d.ts.map +1 -0
  129. package/build/lib/queryCache.js +31 -37
  130. package/build/lib/queryCache.js.map +1 -1
  131. package/build/lib/queryCache.legacy.cjs +111 -0
  132. package/build/lib/queryCache.legacy.cjs.map +1 -0
  133. package/build/lib/{queryCache.esm.js → queryCache.legacy.js} +13 -12
  134. package/build/lib/queryCache.legacy.js.map +1 -0
  135. package/build/lib/{queryClient.mjs → queryClient.cjs} +50 -42
  136. package/build/lib/queryClient.cjs.map +1 -0
  137. package/build/lib/queryClient.d.ts +2 -2
  138. package/build/lib/queryClient.d.ts.map +1 -0
  139. package/build/lib/queryClient.js +98 -134
  140. package/build/lib/queryClient.js.map +1 -1
  141. package/build/lib/queryClient.legacy.cjs +322 -0
  142. package/build/lib/queryClient.legacy.cjs.map +1 -0
  143. package/build/lib/{queryClient.esm.js → queryClient.legacy.js} +28 -25
  144. package/build/lib/queryClient.legacy.js.map +1 -0
  145. package/build/lib/{queryObserver.mjs → queryObserver.cjs} +40 -50
  146. package/build/lib/queryObserver.cjs.map +1 -0
  147. package/build/lib/queryObserver.d.ts +6 -7
  148. package/build/lib/queryObserver.d.ts.map +1 -0
  149. package/build/lib/queryObserver.js +208 -323
  150. package/build/lib/queryObserver.js.map +1 -1
  151. package/build/lib/queryObserver.legacy.cjs +526 -0
  152. package/build/lib/queryObserver.legacy.cjs.map +1 -0
  153. package/build/lib/{queryObserver.esm.js → queryObserver.legacy.js} +71 -88
  154. package/build/lib/queryObserver.legacy.js.map +1 -0
  155. package/build/lib/{removable.mjs → removable.cjs} +7 -5
  156. package/build/lib/{removable.mjs.map → removable.cjs.map} +1 -1
  157. package/build/lib/removable.d.ts +1 -0
  158. package/build/lib/removable.d.ts.map +1 -0
  159. package/build/lib/removable.js +9 -18
  160. package/build/lib/removable.js.map +1 -1
  161. package/build/lib/removable.legacy.cjs +38 -0
  162. package/build/lib/removable.legacy.cjs.map +1 -0
  163. package/build/lib/{removable.esm.js → removable.legacy.js} +3 -3
  164. package/build/lib/removable.legacy.js.map +1 -0
  165. package/build/lib/{retryer.mjs → retryer.cjs} +15 -8
  166. package/build/lib/{retryer.mjs.map → retryer.cjs.map} +1 -1
  167. package/build/lib/retryer.d.ts +5 -4
  168. package/build/lib/retryer.d.ts.map +1 -0
  169. package/build/lib/retryer.js +21 -25
  170. package/build/lib/retryer.js.map +1 -1
  171. package/build/lib/retryer.legacy.cjs +158 -0
  172. package/build/lib/retryer.legacy.cjs.map +1 -0
  173. package/build/lib/{retryer.esm.js → retryer.legacy.js} +6 -4
  174. package/build/lib/retryer.legacy.js.map +1 -0
  175. package/build/lib/{subscribable.esm.js → subscribable.cjs} +8 -6
  176. package/build/lib/subscribable.cjs.map +1 -0
  177. package/build/lib/subscribable.d.ts +3 -2
  178. package/build/lib/subscribable.d.ts.map +1 -0
  179. package/build/lib/subscribable.js +5 -7
  180. package/build/lib/subscribable.js.map +1 -1
  181. package/build/lib/subscribable.legacy.cjs +28 -0
  182. package/build/lib/subscribable.legacy.cjs.map +1 -0
  183. package/build/lib/{subscribable.mjs → subscribable.legacy.js} +5 -5
  184. package/build/lib/subscribable.legacy.js.map +1 -0
  185. package/build/lib/tests/focusManager.test.d.ts +1 -0
  186. package/build/lib/tests/focusManager.test.d.ts.map +1 -0
  187. package/build/lib/tests/hydration.test.d.ts +1 -0
  188. package/build/lib/tests/hydration.test.d.ts.map +1 -0
  189. package/build/lib/tests/infiniteQueryBehavior.test.d.ts +1 -0
  190. package/build/lib/tests/infiniteQueryBehavior.test.d.ts.map +1 -0
  191. package/build/lib/tests/infiniteQueryObserver.test.d.ts +1 -0
  192. package/build/lib/tests/infiniteQueryObserver.test.d.ts.map +1 -0
  193. package/build/lib/tests/mutationCache.test.d.ts +1 -0
  194. package/build/lib/tests/mutationCache.test.d.ts.map +1 -0
  195. package/build/lib/tests/mutationObserver.test.d.ts +1 -0
  196. package/build/lib/tests/mutationObserver.test.d.ts.map +1 -0
  197. package/build/lib/tests/mutations.test.d.ts +1 -0
  198. package/build/lib/tests/mutations.test.d.ts.map +1 -0
  199. package/build/lib/tests/notifyManager.test.d.ts +1 -0
  200. package/build/lib/tests/notifyManager.test.d.ts.map +1 -0
  201. package/build/lib/tests/onlineManager.test.d.ts +1 -0
  202. package/build/lib/tests/onlineManager.test.d.ts.map +1 -0
  203. package/build/lib/tests/queriesObserver.test.d.ts +1 -0
  204. package/build/lib/tests/queriesObserver.test.d.ts.map +1 -0
  205. package/build/lib/tests/query.test.d.ts +1 -0
  206. package/build/lib/tests/query.test.d.ts.map +1 -0
  207. package/build/lib/tests/queryCache.test.d.ts +1 -0
  208. package/build/lib/tests/queryCache.test.d.ts.map +1 -0
  209. package/build/lib/tests/queryClient.test.d.ts +1 -0
  210. package/build/lib/tests/queryClient.test.d.ts.map +1 -0
  211. package/build/lib/tests/queryObserver.test.d.ts +1 -0
  212. package/build/lib/tests/queryObserver.test.d.ts.map +1 -0
  213. package/build/lib/tests/utils.d.ts +3 -2
  214. package/build/lib/tests/utils.d.ts.map +1 -0
  215. package/build/lib/tests/utils.test.d.ts +1 -0
  216. package/build/lib/tests/utils.test.d.ts.map +1 -0
  217. package/build/lib/types.d.ts +34 -46
  218. package/build/lib/types.d.ts.map +1 -0
  219. package/build/lib/{utils.mjs → utils.cjs} +23 -2
  220. package/build/lib/{utils.mjs.map → utils.cjs.map} +1 -1
  221. package/build/lib/utils.d.ts +4 -3
  222. package/build/lib/utils.d.ts.map +1 -0
  223. package/build/lib/utils.js +2 -23
  224. package/build/lib/utils.js.map +1 -1
  225. package/build/lib/utils.legacy.cjs +248 -0
  226. package/build/lib/utils.legacy.cjs.map +1 -0
  227. package/build/lib/{utils.esm.js → utils.legacy.js} +1 -1
  228. package/build/lib/utils.legacy.js.map +1 -0
  229. package/package.json +13 -9
  230. package/src/hydration.ts +18 -37
  231. package/src/index.ts +3 -4
  232. package/src/mutation.ts +1 -1
  233. package/src/mutationCache.ts +4 -4
  234. package/src/mutationObserver.ts +1 -1
  235. package/src/onlineManager.ts +8 -4
  236. package/src/queriesObserver.ts +75 -25
  237. package/src/query.ts +4 -4
  238. package/src/queryCache.ts +5 -8
  239. package/src/queryClient.ts +20 -20
  240. package/src/queryObserver.ts +47 -55
  241. package/src/subscribable.ts +5 -5
  242. package/src/tests/hydration.test.tsx +7 -3
  243. package/src/tests/query.test.tsx +1 -1
  244. package/src/tests/queryCache.test.tsx +1 -19
  245. package/src/tests/queryClient.test.tsx +39 -3
  246. package/src/tests/queryObserver.test.tsx +121 -0
  247. package/src/types.ts +14 -21
  248. package/build/lib/_virtual/_rollupPluginBabelHelpers.esm.js.map +0 -1
  249. package/build/lib/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  250. package/build/lib/focusManager.esm.js.map +0 -1
  251. package/build/lib/hydration.esm.js.map +0 -1
  252. package/build/lib/hydration.mjs.map +0 -1
  253. package/build/lib/index.esm.js +0 -14
  254. package/build/lib/index.esm.js.map +0 -1
  255. package/build/lib/index.mjs +0 -14
  256. package/build/lib/index.mjs.map +0 -1
  257. package/build/lib/infiniteQueryBehavior.esm.js.map +0 -1
  258. package/build/lib/infiniteQueryObserver.esm.js.map +0 -1
  259. package/build/lib/mutation.esm.js.map +0 -1
  260. package/build/lib/mutation.mjs.map +0 -1
  261. package/build/lib/mutationCache.esm.js.map +0 -1
  262. package/build/lib/mutationCache.mjs.map +0 -1
  263. package/build/lib/mutationObserver.esm.js.map +0 -1
  264. package/build/lib/mutationObserver.mjs.map +0 -1
  265. package/build/lib/notifyManager.esm.js.map +0 -1
  266. package/build/lib/onlineManager.esm.js.map +0 -1
  267. package/build/lib/onlineManager.mjs.map +0 -1
  268. package/build/lib/queriesObserver.esm.js.map +0 -1
  269. package/build/lib/queriesObserver.mjs.map +0 -1
  270. package/build/lib/query.esm.js.map +0 -1
  271. package/build/lib/query.mjs.map +0 -1
  272. package/build/lib/queryCache.esm.js.map +0 -1
  273. package/build/lib/queryCache.mjs.map +0 -1
  274. package/build/lib/queryClient.esm.js.map +0 -1
  275. package/build/lib/queryClient.mjs.map +0 -1
  276. package/build/lib/queryObserver.esm.js.map +0 -1
  277. package/build/lib/queryObserver.mjs.map +0 -1
  278. package/build/lib/removable.esm.js.map +0 -1
  279. package/build/lib/retryer.esm.js.map +0 -1
  280. package/build/lib/subscribable.esm.js.map +0 -1
  281. package/build/lib/subscribable.mjs.map +0 -1
  282. package/build/lib/utils.esm.js.map +0 -1
  283. package/build/umd/index.development.js +0 -2683
  284. package/build/umd/index.development.js.map +0 -1
  285. package/build/umd/index.production.js +0 -2
  286. package/build/umd/index.production.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation.cjs","sources":["../../src/mutation.ts"],"sourcesContent":["import type {\n MutationOptions,\n MutationStatus,\n MutationMeta,\n DefaultError,\n} from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport { notifyManager } from './notifyManager'\nimport { Removable } from './removable'\nimport type { Retryer } from './retryer'\nimport { canFetch, createRetryer } from './retryer'\n\n// TYPES\n\ninterface MutationConfig<TData, TError, TVariables, TContext> {\n mutationId: number\n mutationCache: MutationCache\n options: MutationOptions<TData, TError, TVariables, TContext>\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> {\n context: TContext | 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, TContext> {\n type: 'pending'\n variables?: TVariables\n context?: TContext\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, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | PendingAction<TVariables, TContext>\n | PauseAction\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options!: MutationOptions<TData, TError, TVariables, TContext>\n readonly mutationId: number\n\n #observers: MutationObserver<TData, TError, TVariables, TContext>[]\n #defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n #mutationCache: MutationCache\n #retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.mutationId = config.mutationId\n this.#defaultOptions = config.defaultOptions\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, TContext>,\n ): void {\n this.options = { ...this.#defaultOptions, ...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 executeMutation = () => {\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error('No mutationFn found'))\n }\n return this.options.mutationFn(variables)\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.#dispatch({ type: 'continue' })\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n })\n\n return this.#retryer.promise\n }\n\n const restored = this.state.status === 'pending'\n\n try {\n if (!restored) {\n this.#dispatch({ type: 'pending', variables })\n // Notify cache callback\n await this.#mutationCache.config.onMutate?.(\n variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(variables)\n if (context !== this.state.context) {\n this.#dispatch({\n type: 'pending',\n context,\n variables,\n })\n }\n }\n const data = await executeMutation()\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 )\n\n await this.options.onSuccess?.(data, variables, this.state.context)\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 )\n\n await this.options.onSettled?.(data, null, variables, this.state.context)\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 )\n\n await this.options.onError?.(\n error as TError,\n variables,\n this.state.context,\n )\n\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 )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n variables,\n this.state.context,\n )\n throw error\n } finally {\n this.#dispatch({ type: 'error', error: error as TError })\n }\n }\n }\n\n #dispatch(action: Action<TData, TError, TVariables, TContext>): void {\n const reducer = (\n state: MutationState<TData, TError, TVariables, TContext>,\n ): MutationState<TData, TError, TVariables, TContext> => {\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: !canFetch(this.options.networkMode),\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 TContext,\n>(): MutationState<TData, TError, TVariables, TContext> {\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"],"names":["Mutation","Removable","constructor","config","mutationId","defaultOptions","mutationCache","state","getDefaultState","setOptions","options","scheduleGc","updateGcTime","gcTime","meta","addObserver","observer","includes","push","clearGcTimeout","notify","type","mutation","removeObserver","filter","x","optionalRemove","length","status","remove","continue","execute","variables","executeMutation","createRetryer","fn","mutationFn","Promise","reject","Error","onFail","failureCount","error","onPause","onContinue","retry","retryDelay","networkMode","promise","restored","onMutate","context","data","onSuccess","onSettled","onError","undefined","#dispatch","action","reducer","failureReason","isPaused","canFetch","submittedAt","Date","now","notifyManager","batch","forEach","onMutationUpdate"],"mappings":"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"}
@@ -44,7 +44,7 @@ interface PauseAction {
44
44
  interface ContinueAction {
45
45
  type: 'continue';
46
46
  }
47
- export declare type Action<TData, TError, TVariables, TContext> = ContinueAction | ErrorAction<TError> | FailedAction<TError> | PendingAction<TVariables, TContext> | PauseAction | SuccessAction<TData>;
47
+ export type Action<TData, TError, TVariables, TContext> = ContinueAction | ErrorAction<TError> | FailedAction<TError> | PendingAction<TVariables, TContext> | PauseAction | SuccessAction<TData>;
48
48
  export declare class Mutation<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> extends Removable {
49
49
  #private;
50
50
  state: MutationState<TData, TError, TVariables, TContext>;
@@ -61,3 +61,4 @@ export declare class Mutation<TData = unknown, TError = DefaultError, TVariables
61
61
  }
62
62
  export declare function getDefaultState<TData, TError, TVariables, TContext>(): MutationState<TData, TError, TVariables, TContext>;
63
63
  export {};
64
+ //# sourceMappingURL=mutation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation.d.ts","sourceRoot":"","sources":["../../src/mutation.ts"],"names":[],"mappings":"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"}
@@ -1,51 +1,29 @@
1
- 'use strict';
2
-
3
- var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
4
- var notifyManager = require('./notifyManager.js');
5
- var removable = require('./removable.js');
6
- var retryer = require('./retryer.js');
1
+ import { notifyManager } from './notifyManager.js';
2
+ import { Removable } from './removable.js';
3
+ import { createRetryer, canFetch } from './retryer.js';
7
4
 
8
5
  // TYPES
9
- var _observers = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("observers");
10
- var _defaultOptions = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("defaultOptions");
11
- var _mutationCache = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("mutationCache");
12
- var _retryer = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("retryer");
13
- var _dispatch = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("dispatch");
6
+
14
7
  // CLASS
15
8
 
16
- class Mutation extends removable.Removable {
9
+ class Mutation extends Removable {
10
+ #observers;
11
+ #defaultOptions;
12
+ #mutationCache;
13
+ #retryer;
17
14
  constructor(config) {
18
15
  super();
19
- Object.defineProperty(this, _dispatch, {
20
- value: _dispatch2
21
- });
22
- Object.defineProperty(this, _observers, {
23
- writable: true,
24
- value: void 0
25
- });
26
- Object.defineProperty(this, _defaultOptions, {
27
- writable: true,
28
- value: void 0
29
- });
30
- Object.defineProperty(this, _mutationCache, {
31
- writable: true,
32
- value: void 0
33
- });
34
- Object.defineProperty(this, _retryer, {
35
- writable: true,
36
- value: void 0
37
- });
38
16
  this.mutationId = config.mutationId;
39
- _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _defaultOptions)[_defaultOptions] = config.defaultOptions;
40
- _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutationCache)[_mutationCache] = config.mutationCache;
41
- _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers] = [];
17
+ this.#defaultOptions = config.defaultOptions;
18
+ this.#mutationCache = config.mutationCache;
19
+ this.#observers = [];
42
20
  this.state = config.state || getDefaultState();
43
21
  this.setOptions(config.options);
44
22
  this.scheduleGc();
45
23
  }
46
24
  setOptions(options) {
47
25
  this.options = {
48
- ..._rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _defaultOptions)[_defaultOptions],
26
+ ...this.#defaultOptions,
49
27
  ...options
50
28
  };
51
29
  this.updateGcTime(this.options.gcTime);
@@ -54,12 +32,12 @@ class Mutation extends removable.Removable {
54
32
  return this.options.meta;
55
33
  }
56
34
  addObserver(observer) {
57
- if (_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].indexOf(observer) === -1) {
58
- _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].push(observer);
35
+ if (!this.#observers.includes(observer)) {
36
+ this.#observers.push(observer);
59
37
 
60
38
  // Stop the mutation from being garbage collected
61
39
  this.clearGcTimeout();
62
- _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutationCache)[_mutationCache].notify({
40
+ this.#mutationCache.notify({
63
41
  type: 'observerAdded',
64
42
  mutation: this,
65
43
  observer
@@ -67,33 +45,31 @@ class Mutation extends removable.Removable {
67
45
  }
68
46
  }
69
47
  removeObserver(observer) {
70
- _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers] = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].filter(x => x !== observer);
48
+ this.#observers = this.#observers.filter(x => x !== observer);
71
49
  this.scheduleGc();
72
- _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutationCache)[_mutationCache].notify({
50
+ this.#mutationCache.notify({
73
51
  type: 'observerRemoved',
74
52
  mutation: this,
75
53
  observer
76
54
  });
77
55
  }
78
56
  optionalRemove() {
79
- if (!_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].length) {
57
+ if (!this.#observers.length) {
80
58
  if (this.state.status === 'pending') {
81
59
  this.scheduleGc();
82
60
  } else {
83
- _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutationCache)[_mutationCache].remove(this);
61
+ this.#mutationCache.remove(this);
84
62
  }
85
63
  }
86
64
  }
87
65
  continue() {
88
- var _classPrivateFieldLoo, _classPrivateFieldLoo2;
89
- return (_classPrivateFieldLoo = (_classPrivateFieldLoo2 = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _retryer)[_retryer]) == null ? void 0 : _classPrivateFieldLoo2.continue()) != null ? _classPrivateFieldLoo :
66
+ return this.#retryer?.continue() ??
90
67
  // continuing a mutation assumes that variables are set, mutation must have been dehydrated before
91
68
  this.execute(this.state.variables);
92
69
  }
93
70
  async execute(variables) {
94
71
  const executeMutation = () => {
95
- var _this$options$retry;
96
- _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _retryer)[_retryer] = retryer.createRetryer({
72
+ this.#retryer = createRetryer({
97
73
  fn: () => {
98
74
  if (!this.options.mutationFn) {
99
75
  return Promise.reject(new Error('No mutationFn found'));
@@ -101,42 +77,40 @@ class Mutation extends removable.Removable {
101
77
  return this.options.mutationFn(variables);
102
78
  },
103
79
  onFail: (failureCount, error) => {
104
- _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _dispatch)[_dispatch]({
80
+ this.#dispatch({
105
81
  type: 'failed',
106
82
  failureCount,
107
83
  error
108
84
  });
109
85
  },
110
86
  onPause: () => {
111
- _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _dispatch)[_dispatch]({
87
+ this.#dispatch({
112
88
  type: 'pause'
113
89
  });
114
90
  },
115
91
  onContinue: () => {
116
- _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _dispatch)[_dispatch]({
92
+ this.#dispatch({
117
93
  type: 'continue'
118
94
  });
119
95
  },
120
- retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,
96
+ retry: this.options.retry ?? 0,
121
97
  retryDelay: this.options.retryDelay,
122
98
  networkMode: this.options.networkMode
123
99
  });
124
- return _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _retryer)[_retryer].promise;
100
+ return this.#retryer.promise;
125
101
  };
126
102
  const restored = this.state.status === 'pending';
127
103
  try {
128
- var _classPrivateFieldLoo5, _classPrivateFieldLoo6, _this$options$onSucce, _this$options2, _classPrivateFieldLoo7, _classPrivateFieldLoo8, _this$options$onSettl, _this$options3;
129
104
  if (!restored) {
130
- var _classPrivateFieldLoo3, _classPrivateFieldLoo4, _this$options$onMutat, _this$options;
131
- _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _dispatch)[_dispatch]({
105
+ this.#dispatch({
132
106
  type: 'pending',
133
107
  variables
134
108
  });
135
109
  // Notify cache callback
136
- await ((_classPrivateFieldLoo3 = (_classPrivateFieldLoo4 = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutationCache)[_mutationCache].config).onMutate) == null ? void 0 : _classPrivateFieldLoo3.call(_classPrivateFieldLoo4, variables, this));
137
- const context = await ((_this$options$onMutat = (_this$options = this.options).onMutate) == null ? void 0 : _this$options$onMutat.call(_this$options, variables));
110
+ await this.#mutationCache.config.onMutate?.(variables, this);
111
+ const context = await this.options.onMutate?.(variables);
138
112
  if (context !== this.state.context) {
139
- _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _dispatch)[_dispatch]({
113
+ this.#dispatch({
140
114
  type: 'pending',
141
115
  context,
142
116
  variables
@@ -146,102 +120,101 @@ class Mutation extends removable.Removable {
146
120
  const data = await executeMutation();
147
121
 
148
122
  // Notify cache callback
149
- await ((_classPrivateFieldLoo5 = (_classPrivateFieldLoo6 = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutationCache)[_mutationCache].config).onSuccess) == null ? void 0 : _classPrivateFieldLoo5.call(_classPrivateFieldLoo6, data, variables, this.state.context, this));
150
- await ((_this$options$onSucce = (_this$options2 = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options2, data, variables, this.state.context));
123
+ await this.#mutationCache.config.onSuccess?.(data, variables, this.state.context, this);
124
+ await this.options.onSuccess?.(data, variables, this.state.context);
151
125
 
152
126
  // Notify cache callback
153
- await ((_classPrivateFieldLoo7 = (_classPrivateFieldLoo8 = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutationCache)[_mutationCache].config).onSettled) == null ? void 0 : _classPrivateFieldLoo7.call(_classPrivateFieldLoo8, data, null, this.state.variables, this.state.context, this));
154
- await ((_this$options$onSettl = (_this$options3 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options3, data, null, variables, this.state.context));
155
- _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _dispatch)[_dispatch]({
127
+ await this.#mutationCache.config.onSettled?.(data, null, this.state.variables, this.state.context, this);
128
+ await this.options.onSettled?.(data, null, variables, this.state.context);
129
+ this.#dispatch({
156
130
  type: 'success',
157
131
  data
158
132
  });
159
133
  return data;
160
134
  } catch (error) {
161
135
  try {
162
- var _classPrivateFieldLoo9, _classPrivateFieldLoo10, _this$options$onError, _this$options4, _classPrivateFieldLoo11, _classPrivateFieldLoo12, _this$options$onSettl2, _this$options5;
163
136
  // Notify cache callback
164
- await ((_classPrivateFieldLoo9 = (_classPrivateFieldLoo10 = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutationCache)[_mutationCache].config).onError) == null ? void 0 : _classPrivateFieldLoo9.call(_classPrivateFieldLoo10, error, variables, this.state.context, this));
165
- await ((_this$options$onError = (_this$options4 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options4, error, variables, this.state.context));
137
+ await this.#mutationCache.config.onError?.(error, variables, this.state.context, this);
138
+ await this.options.onError?.(error, variables, this.state.context);
166
139
 
167
140
  // Notify cache callback
168
- await ((_classPrivateFieldLoo11 = (_classPrivateFieldLoo12 = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutationCache)[_mutationCache].config).onSettled) == null ? void 0 : _classPrivateFieldLoo11.call(_classPrivateFieldLoo12, undefined, error, this.state.variables, this.state.context, this));
169
- await ((_this$options$onSettl2 = (_this$options5 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options5, undefined, error, variables, this.state.context));
141
+ await this.#mutationCache.config.onSettled?.(undefined, error, this.state.variables, this.state.context, this);
142
+ await this.options.onSettled?.(undefined, error, variables, this.state.context);
170
143
  throw error;
171
144
  } finally {
172
- _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _dispatch)[_dispatch]({
145
+ this.#dispatch({
173
146
  type: 'error',
174
147
  error: error
175
148
  });
176
149
  }
177
150
  }
178
151
  }
179
- }
180
- function _dispatch2(action) {
181
- const reducer = state => {
182
- switch (action.type) {
183
- case 'failed':
184
- return {
185
- ...state,
186
- failureCount: action.failureCount,
187
- failureReason: action.error
188
- };
189
- case 'pause':
190
- return {
191
- ...state,
192
- isPaused: true
193
- };
194
- case 'continue':
195
- return {
196
- ...state,
197
- isPaused: false
198
- };
199
- case 'pending':
200
- return {
201
- ...state,
202
- context: action.context,
203
- data: undefined,
204
- failureCount: 0,
205
- failureReason: null,
206
- error: null,
207
- isPaused: !retryer.canFetch(this.options.networkMode),
208
- status: 'pending',
209
- variables: action.variables,
210
- submittedAt: Date.now()
211
- };
212
- case 'success':
213
- return {
214
- ...state,
215
- data: action.data,
216
- failureCount: 0,
217
- failureReason: null,
218
- error: null,
219
- status: 'success',
220
- isPaused: false
221
- };
222
- case 'error':
223
- return {
224
- ...state,
225
- data: undefined,
226
- error: action.error,
227
- failureCount: state.failureCount + 1,
228
- failureReason: action.error,
229
- isPaused: false,
230
- status: 'error'
231
- };
232
- }
233
- };
234
- this.state = reducer(this.state);
235
- notifyManager.notifyManager.batch(() => {
236
- _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].forEach(observer => {
237
- observer.onMutationUpdate(action);
238
- });
239
- _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutationCache)[_mutationCache].notify({
240
- mutation: this,
241
- type: 'updated',
242
- action
152
+ #dispatch(action) {
153
+ const reducer = state => {
154
+ switch (action.type) {
155
+ case 'failed':
156
+ return {
157
+ ...state,
158
+ failureCount: action.failureCount,
159
+ failureReason: action.error
160
+ };
161
+ case 'pause':
162
+ return {
163
+ ...state,
164
+ isPaused: true
165
+ };
166
+ case 'continue':
167
+ return {
168
+ ...state,
169
+ isPaused: false
170
+ };
171
+ case 'pending':
172
+ return {
173
+ ...state,
174
+ context: action.context,
175
+ data: undefined,
176
+ failureCount: 0,
177
+ failureReason: null,
178
+ error: null,
179
+ isPaused: !canFetch(this.options.networkMode),
180
+ status: 'pending',
181
+ variables: action.variables,
182
+ submittedAt: Date.now()
183
+ };
184
+ case 'success':
185
+ return {
186
+ ...state,
187
+ data: action.data,
188
+ failureCount: 0,
189
+ failureReason: null,
190
+ error: null,
191
+ status: 'success',
192
+ isPaused: false
193
+ };
194
+ case 'error':
195
+ return {
196
+ ...state,
197
+ data: undefined,
198
+ error: action.error,
199
+ failureCount: state.failureCount + 1,
200
+ failureReason: action.error,
201
+ isPaused: false,
202
+ status: 'error'
203
+ };
204
+ }
205
+ };
206
+ this.state = reducer(this.state);
207
+ notifyManager.batch(() => {
208
+ this.#observers.forEach(observer => {
209
+ observer.onMutationUpdate(action);
210
+ });
211
+ this.#mutationCache.notify({
212
+ mutation: this,
213
+ type: 'updated',
214
+ action
215
+ });
243
216
  });
244
- });
217
+ }
245
218
  }
246
219
  function getDefaultState() {
247
220
  return {
@@ -257,6 +230,5 @@ function getDefaultState() {
257
230
  };
258
231
  }
259
232
 
260
- exports.Mutation = Mutation;
261
- exports.getDefaultState = getDefaultState;
233
+ export { Mutation, getDefaultState };
262
234
  //# sourceMappingURL=mutation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mutation.js","sources":["../../src/mutation.ts"],"sourcesContent":["import type {\n MutationOptions,\n MutationStatus,\n MutationMeta,\n DefaultError,\n} from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport { notifyManager } from './notifyManager'\nimport { Removable } from './removable'\nimport type { Retryer } from './retryer'\nimport { canFetch, createRetryer } from './retryer'\n\n// TYPES\n\ninterface MutationConfig<TData, TError, TVariables, TContext> {\n mutationId: number\n mutationCache: MutationCache\n options: MutationOptions<TData, TError, TVariables, TContext>\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> {\n context: TContext | 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, TContext> {\n type: 'pending'\n variables?: TVariables\n context?: TContext\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, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | PendingAction<TVariables, TContext>\n | PauseAction\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options!: MutationOptions<TData, TError, TVariables, TContext>\n readonly mutationId: number\n\n #observers: MutationObserver<TData, TError, TVariables, TContext>[]\n #defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n #mutationCache: MutationCache\n #retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.mutationId = config.mutationId\n this.#defaultOptions = config.defaultOptions\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, TContext>,\n ): void {\n this.options = { ...this.#defaultOptions, ...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.indexOf(observer) === -1) {\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 executeMutation = () => {\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error('No mutationFn found'))\n }\n return this.options.mutationFn(variables)\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.#dispatch({ type: 'continue' })\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n })\n\n return this.#retryer.promise\n }\n\n const restored = this.state.status === 'pending'\n\n try {\n if (!restored) {\n this.#dispatch({ type: 'pending', variables })\n // Notify cache callback\n await this.#mutationCache.config.onMutate?.(\n variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(variables)\n if (context !== this.state.context) {\n this.#dispatch({\n type: 'pending',\n context,\n variables,\n })\n }\n }\n const data = await executeMutation()\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 )\n\n await this.options.onSuccess?.(data, variables, this.state.context)\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 )\n\n await this.options.onSettled?.(data, null, variables, this.state.context)\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 )\n\n await this.options.onError?.(\n error as TError,\n variables,\n this.state.context,\n )\n\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 )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n variables,\n this.state.context,\n )\n throw error\n } finally {\n this.#dispatch({ type: 'error', error: error as TError })\n }\n }\n }\n\n #dispatch(action: Action<TData, TError, TVariables, TContext>): void {\n const reducer = (\n state: MutationState<TData, TError, TVariables, TContext>,\n ): MutationState<TData, TError, TVariables, TContext> => {\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: !canFetch(this.options.networkMode),\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 TContext,\n>(): MutationState<TData, TError, TVariables, TContext> {\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"],"names":["_classPrivateFieldLooseKey","Mutation","Removable","constructor","config","mutationId","_classPrivateFieldLooseBase","defaultOptions","mutationCache","state","getDefaultState","setOptions","options","scheduleGc","updateGcTime","gcTime","meta","addObserver","observer","indexOf","push","clearGcTimeout","notify","type","mutation","removeObserver","filter","x","optionalRemove","length","status","remove","continue","execute","variables","executeMutation","createRetryer","fn","mutationFn","Promise","reject","Error","onFail","failureCount","error","onPause","onContinue","retry","retryDelay","networkMode","promise","restored","onMutate","context","data","onSuccess","onSettled","onError","undefined","action","reducer","failureReason","isPaused","canFetch","submittedAt","Date","now","notifyManager","batch","forEach","onMutationUpdate"],"mappings":"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"}
1
+ {"version":3,"file":"mutation.js","sources":["../../src/mutation.ts"],"sourcesContent":["import type {\n MutationOptions,\n MutationStatus,\n MutationMeta,\n DefaultError,\n} from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport { notifyManager } from './notifyManager'\nimport { Removable } from './removable'\nimport type { Retryer } from './retryer'\nimport { canFetch, createRetryer } from './retryer'\n\n// TYPES\n\ninterface MutationConfig<TData, TError, TVariables, TContext> {\n mutationId: number\n mutationCache: MutationCache\n options: MutationOptions<TData, TError, TVariables, TContext>\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> {\n context: TContext | 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, TContext> {\n type: 'pending'\n variables?: TVariables\n context?: TContext\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, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | PendingAction<TVariables, TContext>\n | PauseAction\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options!: MutationOptions<TData, TError, TVariables, TContext>\n readonly mutationId: number\n\n #observers: MutationObserver<TData, TError, TVariables, TContext>[]\n #defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n #mutationCache: MutationCache\n #retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.mutationId = config.mutationId\n this.#defaultOptions = config.defaultOptions\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, TContext>,\n ): void {\n this.options = { ...this.#defaultOptions, ...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 executeMutation = () => {\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error('No mutationFn found'))\n }\n return this.options.mutationFn(variables)\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.#dispatch({ type: 'continue' })\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n })\n\n return this.#retryer.promise\n }\n\n const restored = this.state.status === 'pending'\n\n try {\n if (!restored) {\n this.#dispatch({ type: 'pending', variables })\n // Notify cache callback\n await this.#mutationCache.config.onMutate?.(\n variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(variables)\n if (context !== this.state.context) {\n this.#dispatch({\n type: 'pending',\n context,\n variables,\n })\n }\n }\n const data = await executeMutation()\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 )\n\n await this.options.onSuccess?.(data, variables, this.state.context)\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 )\n\n await this.options.onSettled?.(data, null, variables, this.state.context)\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 )\n\n await this.options.onError?.(\n error as TError,\n variables,\n this.state.context,\n )\n\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 )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n variables,\n this.state.context,\n )\n throw error\n } finally {\n this.#dispatch({ type: 'error', error: error as TError })\n }\n }\n }\n\n #dispatch(action: Action<TData, TError, TVariables, TContext>): void {\n const reducer = (\n state: MutationState<TData, TError, TVariables, TContext>,\n ): MutationState<TData, TError, TVariables, TContext> => {\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: !canFetch(this.options.networkMode),\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 TContext,\n>(): MutationState<TData, TError, TVariables, TContext> {\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"],"names":["Mutation","Removable","constructor","config","mutationId","defaultOptions","mutationCache","state","getDefaultState","setOptions","options","scheduleGc","updateGcTime","gcTime","meta","addObserver","observer","includes","push","clearGcTimeout","notify","type","mutation","removeObserver","filter","x","optionalRemove","length","status","remove","continue","execute","variables","executeMutation","createRetryer","fn","mutationFn","Promise","reject","Error","onFail","failureCount","error","onPause","onContinue","retry","retryDelay","networkMode","promise","restored","onMutate","context","data","onSuccess","onSettled","onError","undefined","#dispatch","action","reducer","failureReason","isPaused","canFetch","submittedAt","Date","now","notifyManager","batch","forEach","onMutationUpdate"],"mappings":"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"}