@tanstack/query-core 4.35.7 → 4.39.0

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 (143) hide show
  1. package/build/lib/queryCache.d.ts +14 -4
  2. package/build/lib/queryClient.d.ts +83 -20
  3. package/build/lib/tests/queryClient.types.test.d.ts +2 -0
  4. package/build/lib/tests/utils.d.ts +1 -0
  5. package/build/lib/types.d.ts +8 -0
  6. package/package.json +2 -9
  7. package/src/mutationObserver.ts +3 -1
  8. package/src/queryCache.ts +37 -6
  9. package/src/queryClient.ts +202 -37
  10. package/src/tests/mutations.test.tsx +8 -0
  11. package/src/tests/queryClient.types.test.tsx +13 -0
  12. package/src/tests/utils.ts +2 -0
  13. package/src/types.ts +20 -0
  14. package/build/lib/focusManager.esm.js +0 -91
  15. package/build/lib/focusManager.esm.js.map +0 -1
  16. package/build/lib/focusManager.js +0 -96
  17. package/build/lib/focusManager.js.map +0 -1
  18. package/build/lib/focusManager.mjs +0 -91
  19. package/build/lib/focusManager.mjs.map +0 -1
  20. package/build/lib/hydration.esm.js +0 -109
  21. package/build/lib/hydration.esm.js.map +0 -1
  22. package/build/lib/hydration.js +0 -116
  23. package/build/lib/hydration.js.map +0 -1
  24. package/build/lib/hydration.mjs +0 -109
  25. package/build/lib/hydration.mjs.map +0 -1
  26. package/build/lib/index.esm.js +0 -15
  27. package/build/lib/index.esm.js.map +0 -1
  28. package/build/lib/index.js +0 -48
  29. package/build/lib/index.js.map +0 -1
  30. package/build/lib/index.mjs +0 -15
  31. package/build/lib/index.mjs.map +0 -1
  32. package/build/lib/infiniteQueryBehavior.esm.js +0 -146
  33. package/build/lib/infiniteQueryBehavior.esm.js.map +0 -1
  34. package/build/lib/infiniteQueryBehavior.js +0 -154
  35. package/build/lib/infiniteQueryBehavior.js.map +0 -1
  36. package/build/lib/infiniteQueryBehavior.mjs +0 -146
  37. package/build/lib/infiniteQueryBehavior.mjs.map +0 -1
  38. package/build/lib/infiniteQueryObserver.esm.js +0 -85
  39. package/build/lib/infiniteQueryObserver.esm.js.map +0 -1
  40. package/build/lib/infiniteQueryObserver.js +0 -89
  41. package/build/lib/infiniteQueryObserver.js.map +0 -1
  42. package/build/lib/infiniteQueryObserver.mjs +0 -85
  43. package/build/lib/infiniteQueryObserver.mjs.map +0 -1
  44. package/build/lib/logger.esm.js +0 -4
  45. package/build/lib/logger.esm.js.map +0 -1
  46. package/build/lib/logger.js +0 -8
  47. package/build/lib/logger.js.map +0 -1
  48. package/build/lib/logger.mjs +0 -4
  49. package/build/lib/logger.mjs.map +0 -1
  50. package/build/lib/logger.native.esm.js +0 -12
  51. package/build/lib/logger.native.esm.js.map +0 -1
  52. package/build/lib/logger.native.js +0 -16
  53. package/build/lib/logger.native.js.map +0 -1
  54. package/build/lib/logger.native.mjs +0 -12
  55. package/build/lib/logger.native.mjs.map +0 -1
  56. package/build/lib/mutation.esm.js +0 -261
  57. package/build/lib/mutation.esm.js.map +0 -1
  58. package/build/lib/mutation.js +0 -266
  59. package/build/lib/mutation.js.map +0 -1
  60. package/build/lib/mutation.mjs +0 -261
  61. package/build/lib/mutation.mjs.map +0 -1
  62. package/build/lib/mutationCache.esm.js +0 -93
  63. package/build/lib/mutationCache.esm.js.map +0 -1
  64. package/build/lib/mutationCache.js +0 -97
  65. package/build/lib/mutationCache.js.map +0 -1
  66. package/build/lib/mutationCache.mjs +0 -93
  67. package/build/lib/mutationCache.mjs.map +0 -1
  68. package/build/lib/mutationObserver.esm.js +0 -132
  69. package/build/lib/mutationObserver.esm.js.map +0 -1
  70. package/build/lib/mutationObserver.js +0 -136
  71. package/build/lib/mutationObserver.js.map +0 -1
  72. package/build/lib/mutationObserver.mjs +0 -132
  73. package/build/lib/mutationObserver.mjs.map +0 -1
  74. package/build/lib/notifyManager.esm.js +0 -99
  75. package/build/lib/notifyManager.esm.js.map +0 -1
  76. package/build/lib/notifyManager.js +0 -104
  77. package/build/lib/notifyManager.js.map +0 -1
  78. package/build/lib/notifyManager.mjs +0 -99
  79. package/build/lib/notifyManager.mjs.map +0 -1
  80. package/build/lib/onlineManager.esm.js +0 -93
  81. package/build/lib/onlineManager.esm.js.map +0 -1
  82. package/build/lib/onlineManager.js +0 -98
  83. package/build/lib/onlineManager.js.map +0 -1
  84. package/build/lib/onlineManager.mjs +0 -93
  85. package/build/lib/onlineManager.mjs.map +0 -1
  86. package/build/lib/queriesObserver.esm.js +0 -168
  87. package/build/lib/queriesObserver.esm.js.map +0 -1
  88. package/build/lib/queriesObserver.js +0 -172
  89. package/build/lib/queriesObserver.js.map +0 -1
  90. package/build/lib/queriesObserver.mjs +0 -168
  91. package/build/lib/queriesObserver.mjs.map +0 -1
  92. package/build/lib/query.esm.js +0 -475
  93. package/build/lib/query.esm.js.map +0 -1
  94. package/build/lib/query.js +0 -479
  95. package/build/lib/query.js.map +0 -1
  96. package/build/lib/query.mjs +0 -475
  97. package/build/lib/query.mjs.map +0 -1
  98. package/build/lib/queryCache.esm.js +0 -127
  99. package/build/lib/queryCache.esm.js.map +0 -1
  100. package/build/lib/queryCache.js +0 -131
  101. package/build/lib/queryCache.js.map +0 -1
  102. package/build/lib/queryCache.mjs +0 -127
  103. package/build/lib/queryCache.mjs.map +0 -1
  104. package/build/lib/queryClient.esm.js +0 -356
  105. package/build/lib/queryClient.esm.js.map +0 -1
  106. package/build/lib/queryClient.js +0 -360
  107. package/build/lib/queryClient.js.map +0 -1
  108. package/build/lib/queryClient.mjs +0 -356
  109. package/build/lib/queryClient.mjs.map +0 -1
  110. package/build/lib/queryObserver.esm.js +0 -580
  111. package/build/lib/queryObserver.esm.js.map +0 -1
  112. package/build/lib/queryObserver.js +0 -584
  113. package/build/lib/queryObserver.js.map +0 -1
  114. package/build/lib/queryObserver.mjs +0 -580
  115. package/build/lib/queryObserver.mjs.map +0 -1
  116. package/build/lib/removable.esm.js +0 -33
  117. package/build/lib/removable.esm.js.map +0 -1
  118. package/build/lib/removable.js +0 -37
  119. package/build/lib/removable.js.map +0 -1
  120. package/build/lib/removable.mjs +0 -33
  121. package/build/lib/removable.mjs.map +0 -1
  122. package/build/lib/retryer.esm.js +0 -167
  123. package/build/lib/retryer.esm.js.map +0 -1
  124. package/build/lib/retryer.js +0 -174
  125. package/build/lib/retryer.js.map +0 -1
  126. package/build/lib/retryer.mjs +0 -167
  127. package/build/lib/retryer.mjs.map +0 -1
  128. package/build/lib/subscribable.esm.js +0 -32
  129. package/build/lib/subscribable.esm.js.map +0 -1
  130. package/build/lib/subscribable.js +0 -36
  131. package/build/lib/subscribable.js.map +0 -1
  132. package/build/lib/subscribable.mjs +0 -32
  133. package/build/lib/subscribable.mjs.map +0 -1
  134. package/build/lib/utils.esm.js +0 -320
  135. package/build/lib/utils.esm.js.map +0 -1
  136. package/build/lib/utils.js +0 -350
  137. package/build/lib/utils.js.map +0 -1
  138. package/build/lib/utils.mjs +0 -320
  139. package/build/lib/utils.mjs.map +0 -1
  140. package/build/umd/index.development.js +0 -3307
  141. package/build/umd/index.development.js.map +0 -1
  142. package/build/umd/index.production.js +0 -2
  143. package/build/umd/index.production.js.map +0 -1
@@ -1,99 +0,0 @@
1
- import { scheduleMicrotask } from './utils.esm.js';
2
-
3
- function createNotifyManager() {
4
- let queue = [];
5
- let transactions = 0;
6
-
7
- let notifyFn = callback => {
8
- callback();
9
- };
10
-
11
- let batchNotifyFn = callback => {
12
- callback();
13
- };
14
-
15
- const batch = callback => {
16
- let result;
17
- transactions++;
18
-
19
- try {
20
- result = callback();
21
- } finally {
22
- transactions--;
23
-
24
- if (!transactions) {
25
- flush();
26
- }
27
- }
28
-
29
- return result;
30
- };
31
-
32
- const schedule = callback => {
33
- if (transactions) {
34
- queue.push(callback);
35
- } else {
36
- scheduleMicrotask(() => {
37
- notifyFn(callback);
38
- });
39
- }
40
- };
41
- /**
42
- * All calls to the wrapped function will be batched.
43
- */
44
-
45
-
46
- const batchCalls = callback => {
47
- return (...args) => {
48
- schedule(() => {
49
- callback(...args);
50
- });
51
- };
52
- };
53
-
54
- const flush = () => {
55
- const originalQueue = queue;
56
- queue = [];
57
-
58
- if (originalQueue.length) {
59
- scheduleMicrotask(() => {
60
- batchNotifyFn(() => {
61
- originalQueue.forEach(callback => {
62
- notifyFn(callback);
63
- });
64
- });
65
- });
66
- }
67
- };
68
- /**
69
- * Use this method to set a custom notify function.
70
- * This can be used to for example wrap notifications with `React.act` while running tests.
71
- */
72
-
73
-
74
- const setNotifyFunction = fn => {
75
- notifyFn = fn;
76
- };
77
- /**
78
- * Use this method to set a custom function to batch notifications together into a single tick.
79
- * By default React Query will use the batch function provided by ReactDOM or React Native.
80
- */
81
-
82
-
83
- const setBatchNotifyFunction = fn => {
84
- batchNotifyFn = fn;
85
- };
86
-
87
- return {
88
- batch,
89
- batchCalls,
90
- schedule,
91
- setNotifyFunction,
92
- setBatchNotifyFunction
93
- };
94
- } // SINGLETON
95
-
96
- const notifyManager = createNotifyManager();
97
-
98
- export { createNotifyManager, notifyManager };
99
- //# sourceMappingURL=notifyManager.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notifyManager.esm.js","sources":["../../src/notifyManager.ts"],"sourcesContent":["import { scheduleMicrotask } from './utils'\n\n// TYPES\n\ntype NotifyCallback = () => void\n\ntype NotifyFunction = (callback: () => void) => void\n\ntype BatchNotifyFunction = (callback: () => void) => void\n\ntype BatchCallsCallback<T extends unknown[]> = (...args: T) => void\n\nexport function createNotifyManager() {\n let queue: NotifyCallback[] = []\n let transactions = 0\n let notifyFn: NotifyFunction = (callback) => {\n callback()\n }\n let batchNotifyFn: BatchNotifyFunction = (callback: () => void) => {\n callback()\n }\n\n const batch = <T>(callback: () => T): T => {\n let result\n transactions++\n try {\n result = callback()\n } finally {\n transactions--\n if (!transactions) {\n flush()\n }\n }\n return result\n }\n\n const schedule = (callback: NotifyCallback): void => {\n if (transactions) {\n queue.push(callback)\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback)\n })\n }\n }\n\n /**\n * All calls to the wrapped function will be batched.\n */\n const batchCalls = <T extends unknown[]>(\n callback: BatchCallsCallback<T>,\n ): BatchCallsCallback<T> => {\n return (...args) => {\n schedule(() => {\n callback(...args)\n })\n }\n }\n\n const flush = (): void => {\n const originalQueue = queue\n queue = []\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback)\n })\n })\n })\n }\n }\n\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n const setNotifyFunction = (fn: NotifyFunction) => {\n notifyFn = fn\n }\n\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n const setBatchNotifyFunction = (fn: BatchNotifyFunction) => {\n batchNotifyFn = fn\n }\n\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction,\n } as const\n}\n\n// SINGLETON\nexport const notifyManager = createNotifyManager()\n"],"names":["createNotifyManager","queue","transactions","notifyFn","callback","batchNotifyFn","batch","result","flush","schedule","push","scheduleMicrotask","batchCalls","args","originalQueue","length","forEach","setNotifyFunction","fn","setBatchNotifyFunction","notifyManager"],"mappings":";;AAYO,SAASA,mBAAT,GAA+B;EACpC,IAAIC,KAAuB,GAAG,EAA9B,CAAA;EACA,IAAIC,YAAY,GAAG,CAAnB,CAAA;;EACA,IAAIC,QAAwB,GAAIC,QAAD,IAAc;IAC3CA,QAAQ,EAAA,CAAA;GADV,CAAA;;EAGA,IAAIC,aAAkC,GAAID,QAAD,IAA0B;IACjEA,QAAQ,EAAA,CAAA;GADV,CAAA;;EAIA,MAAME,KAAK,GAAOF,QAAJ,IAA6B;AACzC,IAAA,IAAIG,MAAJ,CAAA;IACAL,YAAY,EAAA,CAAA;;IACZ,IAAI;MACFK,MAAM,GAAGH,QAAQ,EAAjB,CAAA;AACD,KAFD,SAEU;MACRF,YAAY,EAAA,CAAA;;MACZ,IAAI,CAACA,YAAL,EAAmB;QACjBM,KAAK,EAAA,CAAA;AACN,OAAA;AACF,KAAA;;AACD,IAAA,OAAOD,MAAP,CAAA;GAXF,CAAA;;EAcA,MAAME,QAAQ,GAAIL,QAAD,IAAoC;AACnD,IAAA,IAAIF,YAAJ,EAAkB;MAChBD,KAAK,CAACS,IAAN,CAAWN,QAAX,CAAA,CAAA;AACD,KAFD,MAEO;AACLO,MAAAA,iBAAiB,CAAC,MAAM;QACtBR,QAAQ,CAACC,QAAD,CAAR,CAAA;AACD,OAFgB,CAAjB,CAAA;AAGD,KAAA;GAPH,CAAA;AAUA;AACF;AACA;;;EACE,MAAMQ,UAAU,GACdR,QADiB,IAES;IAC1B,OAAO,CAAC,GAAGS,IAAJ,KAAa;AAClBJ,MAAAA,QAAQ,CAAC,MAAM;QACbL,QAAQ,CAAC,GAAGS,IAAJ,CAAR,CAAA;AACD,OAFO,CAAR,CAAA;KADF,CAAA;GAHF,CAAA;;EAUA,MAAML,KAAK,GAAG,MAAY;IACxB,MAAMM,aAAa,GAAGb,KAAtB,CAAA;AACAA,IAAAA,KAAK,GAAG,EAAR,CAAA;;IACA,IAAIa,aAAa,CAACC,MAAlB,EAA0B;AACxBJ,MAAAA,iBAAiB,CAAC,MAAM;AACtBN,QAAAA,aAAa,CAAC,MAAM;AAClBS,UAAAA,aAAa,CAACE,OAAd,CAAuBZ,QAAD,IAAc;YAClCD,QAAQ,CAACC,QAAD,CAAR,CAAA;WADF,CAAA,CAAA;AAGD,SAJY,CAAb,CAAA;AAKD,OANgB,CAAjB,CAAA;AAOD,KAAA;GAXH,CAAA;AAcA;AACF;AACA;AACA;;;EACE,MAAMa,iBAAiB,GAAIC,EAAD,IAAwB;AAChDf,IAAAA,QAAQ,GAAGe,EAAX,CAAA;GADF,CAAA;AAIA;AACF;AACA;AACA;;;EACE,MAAMC,sBAAsB,GAAID,EAAD,IAA6B;AAC1Db,IAAAA,aAAa,GAAGa,EAAhB,CAAA;GADF,CAAA;;EAIA,OAAO;IACLZ,KADK;IAELM,UAFK;IAGLH,QAHK;IAILQ,iBAJK;AAKLE,IAAAA,sBAAAA;GALF,CAAA;AAOD;;AAGYC,MAAAA,aAAa,GAAGpB,mBAAmB;;;;"}
@@ -1,104 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var utils = require('./utils.js');
6
-
7
- function createNotifyManager() {
8
- let queue = [];
9
- let transactions = 0;
10
-
11
- let notifyFn = callback => {
12
- callback();
13
- };
14
-
15
- let batchNotifyFn = callback => {
16
- callback();
17
- };
18
-
19
- const batch = callback => {
20
- let result;
21
- transactions++;
22
-
23
- try {
24
- result = callback();
25
- } finally {
26
- transactions--;
27
-
28
- if (!transactions) {
29
- flush();
30
- }
31
- }
32
-
33
- return result;
34
- };
35
-
36
- const schedule = callback => {
37
- if (transactions) {
38
- queue.push(callback);
39
- } else {
40
- utils.scheduleMicrotask(() => {
41
- notifyFn(callback);
42
- });
43
- }
44
- };
45
- /**
46
- * All calls to the wrapped function will be batched.
47
- */
48
-
49
-
50
- const batchCalls = callback => {
51
- return (...args) => {
52
- schedule(() => {
53
- callback(...args);
54
- });
55
- };
56
- };
57
-
58
- const flush = () => {
59
- const originalQueue = queue;
60
- queue = [];
61
-
62
- if (originalQueue.length) {
63
- utils.scheduleMicrotask(() => {
64
- batchNotifyFn(() => {
65
- originalQueue.forEach(callback => {
66
- notifyFn(callback);
67
- });
68
- });
69
- });
70
- }
71
- };
72
- /**
73
- * Use this method to set a custom notify function.
74
- * This can be used to for example wrap notifications with `React.act` while running tests.
75
- */
76
-
77
-
78
- const setNotifyFunction = fn => {
79
- notifyFn = fn;
80
- };
81
- /**
82
- * Use this method to set a custom function to batch notifications together into a single tick.
83
- * By default React Query will use the batch function provided by ReactDOM or React Native.
84
- */
85
-
86
-
87
- const setBatchNotifyFunction = fn => {
88
- batchNotifyFn = fn;
89
- };
90
-
91
- return {
92
- batch,
93
- batchCalls,
94
- schedule,
95
- setNotifyFunction,
96
- setBatchNotifyFunction
97
- };
98
- } // SINGLETON
99
-
100
- const notifyManager = createNotifyManager();
101
-
102
- exports.createNotifyManager = createNotifyManager;
103
- exports.notifyManager = notifyManager;
104
- //# sourceMappingURL=notifyManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notifyManager.js","sources":["../../src/notifyManager.ts"],"sourcesContent":["import { scheduleMicrotask } from './utils'\n\n// TYPES\n\ntype NotifyCallback = () => void\n\ntype NotifyFunction = (callback: () => void) => void\n\ntype BatchNotifyFunction = (callback: () => void) => void\n\ntype BatchCallsCallback<T extends unknown[]> = (...args: T) => void\n\nexport function createNotifyManager() {\n let queue: NotifyCallback[] = []\n let transactions = 0\n let notifyFn: NotifyFunction = (callback) => {\n callback()\n }\n let batchNotifyFn: BatchNotifyFunction = (callback: () => void) => {\n callback()\n }\n\n const batch = <T>(callback: () => T): T => {\n let result\n transactions++\n try {\n result = callback()\n } finally {\n transactions--\n if (!transactions) {\n flush()\n }\n }\n return result\n }\n\n const schedule = (callback: NotifyCallback): void => {\n if (transactions) {\n queue.push(callback)\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback)\n })\n }\n }\n\n /**\n * All calls to the wrapped function will be batched.\n */\n const batchCalls = <T extends unknown[]>(\n callback: BatchCallsCallback<T>,\n ): BatchCallsCallback<T> => {\n return (...args) => {\n schedule(() => {\n callback(...args)\n })\n }\n }\n\n const flush = (): void => {\n const originalQueue = queue\n queue = []\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback)\n })\n })\n })\n }\n }\n\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n const setNotifyFunction = (fn: NotifyFunction) => {\n notifyFn = fn\n }\n\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n const setBatchNotifyFunction = (fn: BatchNotifyFunction) => {\n batchNotifyFn = fn\n }\n\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction,\n } as const\n}\n\n// SINGLETON\nexport const notifyManager = createNotifyManager()\n"],"names":["createNotifyManager","queue","transactions","notifyFn","callback","batchNotifyFn","batch","result","flush","schedule","push","scheduleMicrotask","batchCalls","args","originalQueue","length","forEach","setNotifyFunction","fn","setBatchNotifyFunction","notifyManager"],"mappings":";;;;;;AAYO,SAASA,mBAAT,GAA+B;EACpC,IAAIC,KAAuB,GAAG,EAA9B,CAAA;EACA,IAAIC,YAAY,GAAG,CAAnB,CAAA;;EACA,IAAIC,QAAwB,GAAIC,QAAD,IAAc;IAC3CA,QAAQ,EAAA,CAAA;GADV,CAAA;;EAGA,IAAIC,aAAkC,GAAID,QAAD,IAA0B;IACjEA,QAAQ,EAAA,CAAA;GADV,CAAA;;EAIA,MAAME,KAAK,GAAOF,QAAJ,IAA6B;AACzC,IAAA,IAAIG,MAAJ,CAAA;IACAL,YAAY,EAAA,CAAA;;IACZ,IAAI;MACFK,MAAM,GAAGH,QAAQ,EAAjB,CAAA;AACD,KAFD,SAEU;MACRF,YAAY,EAAA,CAAA;;MACZ,IAAI,CAACA,YAAL,EAAmB;QACjBM,KAAK,EAAA,CAAA;AACN,OAAA;AACF,KAAA;;AACD,IAAA,OAAOD,MAAP,CAAA;GAXF,CAAA;;EAcA,MAAME,QAAQ,GAAIL,QAAD,IAAoC;AACnD,IAAA,IAAIF,YAAJ,EAAkB;MAChBD,KAAK,CAACS,IAAN,CAAWN,QAAX,CAAA,CAAA;AACD,KAFD,MAEO;AACLO,MAAAA,uBAAiB,CAAC,MAAM;QACtBR,QAAQ,CAACC,QAAD,CAAR,CAAA;AACD,OAFgB,CAAjB,CAAA;AAGD,KAAA;GAPH,CAAA;AAUA;AACF;AACA;;;EACE,MAAMQ,UAAU,GACdR,QADiB,IAES;IAC1B,OAAO,CAAC,GAAGS,IAAJ,KAAa;AAClBJ,MAAAA,QAAQ,CAAC,MAAM;QACbL,QAAQ,CAAC,GAAGS,IAAJ,CAAR,CAAA;AACD,OAFO,CAAR,CAAA;KADF,CAAA;GAHF,CAAA;;EAUA,MAAML,KAAK,GAAG,MAAY;IACxB,MAAMM,aAAa,GAAGb,KAAtB,CAAA;AACAA,IAAAA,KAAK,GAAG,EAAR,CAAA;;IACA,IAAIa,aAAa,CAACC,MAAlB,EAA0B;AACxBJ,MAAAA,uBAAiB,CAAC,MAAM;AACtBN,QAAAA,aAAa,CAAC,MAAM;AAClBS,UAAAA,aAAa,CAACE,OAAd,CAAuBZ,QAAD,IAAc;YAClCD,QAAQ,CAACC,QAAD,CAAR,CAAA;WADF,CAAA,CAAA;AAGD,SAJY,CAAb,CAAA;AAKD,OANgB,CAAjB,CAAA;AAOD,KAAA;GAXH,CAAA;AAcA;AACF;AACA;AACA;;;EACE,MAAMa,iBAAiB,GAAIC,EAAD,IAAwB;AAChDf,IAAAA,QAAQ,GAAGe,EAAX,CAAA;GADF,CAAA;AAIA;AACF;AACA;AACA;;;EACE,MAAMC,sBAAsB,GAAID,EAAD,IAA6B;AAC1Db,IAAAA,aAAa,GAAGa,EAAhB,CAAA;GADF,CAAA;;EAIA,OAAO;IACLZ,KADK;IAELM,UAFK;IAGLH,QAHK;IAILQ,iBAJK;AAKLE,IAAAA,sBAAAA;GALF,CAAA;AAOD;;AAGYC,MAAAA,aAAa,GAAGpB,mBAAmB;;;;;"}
@@ -1,99 +0,0 @@
1
- import { scheduleMicrotask } from './utils.mjs';
2
-
3
- function createNotifyManager() {
4
- let queue = [];
5
- let transactions = 0;
6
-
7
- let notifyFn = callback => {
8
- callback();
9
- };
10
-
11
- let batchNotifyFn = callback => {
12
- callback();
13
- };
14
-
15
- const batch = callback => {
16
- let result;
17
- transactions++;
18
-
19
- try {
20
- result = callback();
21
- } finally {
22
- transactions--;
23
-
24
- if (!transactions) {
25
- flush();
26
- }
27
- }
28
-
29
- return result;
30
- };
31
-
32
- const schedule = callback => {
33
- if (transactions) {
34
- queue.push(callback);
35
- } else {
36
- scheduleMicrotask(() => {
37
- notifyFn(callback);
38
- });
39
- }
40
- };
41
- /**
42
- * All calls to the wrapped function will be batched.
43
- */
44
-
45
-
46
- const batchCalls = callback => {
47
- return (...args) => {
48
- schedule(() => {
49
- callback(...args);
50
- });
51
- };
52
- };
53
-
54
- const flush = () => {
55
- const originalQueue = queue;
56
- queue = [];
57
-
58
- if (originalQueue.length) {
59
- scheduleMicrotask(() => {
60
- batchNotifyFn(() => {
61
- originalQueue.forEach(callback => {
62
- notifyFn(callback);
63
- });
64
- });
65
- });
66
- }
67
- };
68
- /**
69
- * Use this method to set a custom notify function.
70
- * This can be used to for example wrap notifications with `React.act` while running tests.
71
- */
72
-
73
-
74
- const setNotifyFunction = fn => {
75
- notifyFn = fn;
76
- };
77
- /**
78
- * Use this method to set a custom function to batch notifications together into a single tick.
79
- * By default React Query will use the batch function provided by ReactDOM or React Native.
80
- */
81
-
82
-
83
- const setBatchNotifyFunction = fn => {
84
- batchNotifyFn = fn;
85
- };
86
-
87
- return {
88
- batch,
89
- batchCalls,
90
- schedule,
91
- setNotifyFunction,
92
- setBatchNotifyFunction
93
- };
94
- } // SINGLETON
95
-
96
- const notifyManager = createNotifyManager();
97
-
98
- export { createNotifyManager, notifyManager };
99
- //# sourceMappingURL=notifyManager.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notifyManager.mjs","sources":["../../src/notifyManager.ts"],"sourcesContent":["import { scheduleMicrotask } from './utils'\n\n// TYPES\n\ntype NotifyCallback = () => void\n\ntype NotifyFunction = (callback: () => void) => void\n\ntype BatchNotifyFunction = (callback: () => void) => void\n\ntype BatchCallsCallback<T extends unknown[]> = (...args: T) => void\n\nexport function createNotifyManager() {\n let queue: NotifyCallback[] = []\n let transactions = 0\n let notifyFn: NotifyFunction = (callback) => {\n callback()\n }\n let batchNotifyFn: BatchNotifyFunction = (callback: () => void) => {\n callback()\n }\n\n const batch = <T>(callback: () => T): T => {\n let result\n transactions++\n try {\n result = callback()\n } finally {\n transactions--\n if (!transactions) {\n flush()\n }\n }\n return result\n }\n\n const schedule = (callback: NotifyCallback): void => {\n if (transactions) {\n queue.push(callback)\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback)\n })\n }\n }\n\n /**\n * All calls to the wrapped function will be batched.\n */\n const batchCalls = <T extends unknown[]>(\n callback: BatchCallsCallback<T>,\n ): BatchCallsCallback<T> => {\n return (...args) => {\n schedule(() => {\n callback(...args)\n })\n }\n }\n\n const flush = (): void => {\n const originalQueue = queue\n queue = []\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback)\n })\n })\n })\n }\n }\n\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n const setNotifyFunction = (fn: NotifyFunction) => {\n notifyFn = fn\n }\n\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n const setBatchNotifyFunction = (fn: BatchNotifyFunction) => {\n batchNotifyFn = fn\n }\n\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction,\n } as const\n}\n\n// SINGLETON\nexport const notifyManager = createNotifyManager()\n"],"names":["createNotifyManager","queue","transactions","notifyFn","callback","batchNotifyFn","batch","result","flush","schedule","push","scheduleMicrotask","batchCalls","args","originalQueue","length","forEach","setNotifyFunction","fn","setBatchNotifyFunction","notifyManager"],"mappings":";;AAYO,SAASA,mBAAT,GAA+B;EACpC,IAAIC,KAAuB,GAAG,EAA9B,CAAA;EACA,IAAIC,YAAY,GAAG,CAAnB,CAAA;;EACA,IAAIC,QAAwB,GAAIC,QAAD,IAAc;IAC3CA,QAAQ,EAAA,CAAA;GADV,CAAA;;EAGA,IAAIC,aAAkC,GAAID,QAAD,IAA0B;IACjEA,QAAQ,EAAA,CAAA;GADV,CAAA;;EAIA,MAAME,KAAK,GAAOF,QAAJ,IAA6B;AACzC,IAAA,IAAIG,MAAJ,CAAA;IACAL,YAAY,EAAA,CAAA;;IACZ,IAAI;MACFK,MAAM,GAAGH,QAAQ,EAAjB,CAAA;AACD,KAFD,SAEU;MACRF,YAAY,EAAA,CAAA;;MACZ,IAAI,CAACA,YAAL,EAAmB;QACjBM,KAAK,EAAA,CAAA;AACN,OAAA;AACF,KAAA;;AACD,IAAA,OAAOD,MAAP,CAAA;GAXF,CAAA;;EAcA,MAAME,QAAQ,GAAIL,QAAD,IAAoC;AACnD,IAAA,IAAIF,YAAJ,EAAkB;MAChBD,KAAK,CAACS,IAAN,CAAWN,QAAX,CAAA,CAAA;AACD,KAFD,MAEO;AACLO,MAAAA,iBAAiB,CAAC,MAAM;QACtBR,QAAQ,CAACC,QAAD,CAAR,CAAA;AACD,OAFgB,CAAjB,CAAA;AAGD,KAAA;GAPH,CAAA;AAUA;AACF;AACA;;;EACE,MAAMQ,UAAU,GACdR,QADiB,IAES;IAC1B,OAAO,CAAC,GAAGS,IAAJ,KAAa;AAClBJ,MAAAA,QAAQ,CAAC,MAAM;QACbL,QAAQ,CAAC,GAAGS,IAAJ,CAAR,CAAA;AACD,OAFO,CAAR,CAAA;KADF,CAAA;GAHF,CAAA;;EAUA,MAAML,KAAK,GAAG,MAAY;IACxB,MAAMM,aAAa,GAAGb,KAAtB,CAAA;AACAA,IAAAA,KAAK,GAAG,EAAR,CAAA;;IACA,IAAIa,aAAa,CAACC,MAAlB,EAA0B;AACxBJ,MAAAA,iBAAiB,CAAC,MAAM;AACtBN,QAAAA,aAAa,CAAC,MAAM;AAClBS,UAAAA,aAAa,CAACE,OAAd,CAAuBZ,QAAD,IAAc;YAClCD,QAAQ,CAACC,QAAD,CAAR,CAAA;WADF,CAAA,CAAA;AAGD,SAJY,CAAb,CAAA;AAKD,OANgB,CAAjB,CAAA;AAOD,KAAA;GAXH,CAAA;AAcA;AACF;AACA;AACA;;;EACE,MAAMa,iBAAiB,GAAIC,EAAD,IAAwB;AAChDf,IAAAA,QAAQ,GAAGe,EAAX,CAAA;GADF,CAAA;AAIA;AACF;AACA;AACA;;;EACE,MAAMC,sBAAsB,GAAID,EAAD,IAA6B;AAC1Db,IAAAA,aAAa,GAAGa,EAAhB,CAAA;GADF,CAAA;;EAIA,OAAO;IACLZ,KADK;IAELM,UAFK;IAGLH,QAHK;IAILQ,iBAJK;AAKLE,IAAAA,sBAAAA;GALF,CAAA;AAOD;;AAGYC,MAAAA,aAAa,GAAGpB,mBAAmB;;;;"}
@@ -1,93 +0,0 @@
1
- import { Subscribable } from './subscribable.esm.js';
2
- import { isServer } from './utils.esm.js';
3
-
4
- const onlineEvents = ['online', 'offline'];
5
- class OnlineManager extends Subscribable {
6
- constructor() {
7
- super();
8
-
9
- this.setup = onOnline => {
10
- // addEventListener does not exist in React Native, but window does
11
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
12
- if (!isServer && window.addEventListener) {
13
- const listener = () => onOnline(); // Listen to online
14
-
15
-
16
- onlineEvents.forEach(event => {
17
- window.addEventListener(event, listener, false);
18
- });
19
- return () => {
20
- // Be sure to unsubscribe if a new handler is set
21
- onlineEvents.forEach(event => {
22
- window.removeEventListener(event, listener);
23
- });
24
- };
25
- }
26
-
27
- return;
28
- };
29
- }
30
-
31
- onSubscribe() {
32
- if (!this.cleanup) {
33
- this.setEventListener(this.setup);
34
- }
35
- }
36
-
37
- onUnsubscribe() {
38
- if (!this.hasListeners()) {
39
- var _this$cleanup;
40
-
41
- (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);
42
- this.cleanup = undefined;
43
- }
44
- }
45
-
46
- setEventListener(setup) {
47
- var _this$cleanup2;
48
-
49
- this.setup = setup;
50
- (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);
51
- this.cleanup = setup(online => {
52
- if (typeof online === 'boolean') {
53
- this.setOnline(online);
54
- } else {
55
- this.onOnline();
56
- }
57
- });
58
- }
59
-
60
- setOnline(online) {
61
- const changed = this.online !== online;
62
-
63
- if (changed) {
64
- this.online = online;
65
- this.onOnline();
66
- }
67
- }
68
-
69
- onOnline() {
70
- this.listeners.forEach(({
71
- listener
72
- }) => {
73
- listener();
74
- });
75
- }
76
-
77
- isOnline() {
78
- if (typeof this.online === 'boolean') {
79
- return this.online;
80
- }
81
-
82
- if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {
83
- return true;
84
- }
85
-
86
- return navigator.onLine;
87
- }
88
-
89
- }
90
- const onlineManager = new OnlineManager();
91
-
92
- export { OnlineManager, onlineManager };
93
- //# sourceMappingURL=onlineManager.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"onlineManager.esm.js","sources":["../../src/onlineManager.ts"],"sourcesContent":["import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype SetupFn = (\n setOnline: (online?: boolean) => void,\n) => (() => void) | undefined\n\nconst onlineEvents = ['online', 'offline'] as const\n\nexport class OnlineManager extends Subscribable {\n private online?: boolean\n private cleanup?: () => void\n\n private setup: SetupFn\n\n constructor() {\n super()\n this.setup = (onOnline) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline()\n // Listen to online\n onlineEvents.forEach((event) => {\n window.addEventListener(event, listener, false)\n })\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n onlineEvents.forEach((event) => {\n window.removeEventListener(event, listener)\n })\n }\n }\n\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.cleanup) {\n this.setEventListener(this.setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.cleanup?.()\n this.cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.setup = setup\n this.cleanup?.()\n this.cleanup = setup((online?: boolean) => {\n if (typeof online === 'boolean') {\n this.setOnline(online)\n } else {\n this.onOnline()\n }\n })\n }\n\n setOnline(online?: boolean): void {\n const changed = this.online !== online\n\n if (changed) {\n this.online = online\n this.onOnline()\n }\n }\n\n onOnline(): void {\n this.listeners.forEach(({ listener }) => {\n listener()\n })\n }\n\n isOnline(): boolean {\n if (typeof this.online === 'boolean') {\n return this.online\n }\n\n if (\n typeof navigator === 'undefined' ||\n typeof navigator.onLine === 'undefined'\n ) {\n return true\n }\n\n return navigator.onLine\n }\n}\n\nexport const onlineManager = new OnlineManager()\n"],"names":["onlineEvents","OnlineManager","Subscribable","constructor","setup","onOnline","isServer","window","addEventListener","listener","forEach","event","removeEventListener","onSubscribe","cleanup","setEventListener","onUnsubscribe","hasListeners","undefined","online","setOnline","changed","listeners","isOnline","navigator","onLine","onlineManager"],"mappings":"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"}
@@ -1,98 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var subscribable = require('./subscribable.js');
6
- var utils = require('./utils.js');
7
-
8
- const onlineEvents = ['online', 'offline'];
9
- class OnlineManager extends subscribable.Subscribable {
10
- constructor() {
11
- super();
12
-
13
- this.setup = onOnline => {
14
- // addEventListener does not exist in React Native, but window does
15
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
16
- if (!utils.isServer && window.addEventListener) {
17
- const listener = () => onOnline(); // Listen to online
18
-
19
-
20
- onlineEvents.forEach(event => {
21
- window.addEventListener(event, listener, false);
22
- });
23
- return () => {
24
- // Be sure to unsubscribe if a new handler is set
25
- onlineEvents.forEach(event => {
26
- window.removeEventListener(event, listener);
27
- });
28
- };
29
- }
30
-
31
- return;
32
- };
33
- }
34
-
35
- onSubscribe() {
36
- if (!this.cleanup) {
37
- this.setEventListener(this.setup);
38
- }
39
- }
40
-
41
- onUnsubscribe() {
42
- if (!this.hasListeners()) {
43
- var _this$cleanup;
44
-
45
- (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);
46
- this.cleanup = undefined;
47
- }
48
- }
49
-
50
- setEventListener(setup) {
51
- var _this$cleanup2;
52
-
53
- this.setup = setup;
54
- (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);
55
- this.cleanup = setup(online => {
56
- if (typeof online === 'boolean') {
57
- this.setOnline(online);
58
- } else {
59
- this.onOnline();
60
- }
61
- });
62
- }
63
-
64
- setOnline(online) {
65
- const changed = this.online !== online;
66
-
67
- if (changed) {
68
- this.online = online;
69
- this.onOnline();
70
- }
71
- }
72
-
73
- onOnline() {
74
- this.listeners.forEach(({
75
- listener
76
- }) => {
77
- listener();
78
- });
79
- }
80
-
81
- isOnline() {
82
- if (typeof this.online === 'boolean') {
83
- return this.online;
84
- }
85
-
86
- if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {
87
- return true;
88
- }
89
-
90
- return navigator.onLine;
91
- }
92
-
93
- }
94
- const onlineManager = new OnlineManager();
95
-
96
- exports.OnlineManager = OnlineManager;
97
- exports.onlineManager = onlineManager;
98
- //# sourceMappingURL=onlineManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"onlineManager.js","sources":["../../src/onlineManager.ts"],"sourcesContent":["import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype SetupFn = (\n setOnline: (online?: boolean) => void,\n) => (() => void) | undefined\n\nconst onlineEvents = ['online', 'offline'] as const\n\nexport class OnlineManager extends Subscribable {\n private online?: boolean\n private cleanup?: () => void\n\n private setup: SetupFn\n\n constructor() {\n super()\n this.setup = (onOnline) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline()\n // Listen to online\n onlineEvents.forEach((event) => {\n window.addEventListener(event, listener, false)\n })\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n onlineEvents.forEach((event) => {\n window.removeEventListener(event, listener)\n })\n }\n }\n\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.cleanup) {\n this.setEventListener(this.setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.cleanup?.()\n this.cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.setup = setup\n this.cleanup?.()\n this.cleanup = setup((online?: boolean) => {\n if (typeof online === 'boolean') {\n this.setOnline(online)\n } else {\n this.onOnline()\n }\n })\n }\n\n setOnline(online?: boolean): void {\n const changed = this.online !== online\n\n if (changed) {\n this.online = online\n this.onOnline()\n }\n }\n\n onOnline(): void {\n this.listeners.forEach(({ listener }) => {\n listener()\n })\n }\n\n isOnline(): boolean {\n if (typeof this.online === 'boolean') {\n return this.online\n }\n\n if (\n typeof navigator === 'undefined' ||\n typeof navigator.onLine === 'undefined'\n ) {\n return true\n }\n\n return navigator.onLine\n }\n}\n\nexport const onlineManager = new OnlineManager()\n"],"names":["onlineEvents","OnlineManager","Subscribable","constructor","setup","onOnline","isServer","window","addEventListener","listener","forEach","event","removeEventListener","onSubscribe","cleanup","setEventListener","onUnsubscribe","hasListeners","undefined","online","setOnline","changed","listeners","isOnline","navigator","onLine","onlineManager"],"mappings":"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"}
@@ -1,93 +0,0 @@
1
- import { Subscribable } from './subscribable.mjs';
2
- import { isServer } from './utils.mjs';
3
-
4
- const onlineEvents = ['online', 'offline'];
5
- class OnlineManager extends Subscribable {
6
- constructor() {
7
- super();
8
-
9
- this.setup = onOnline => {
10
- // addEventListener does not exist in React Native, but window does
11
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
12
- if (!isServer && window.addEventListener) {
13
- const listener = () => onOnline(); // Listen to online
14
-
15
-
16
- onlineEvents.forEach(event => {
17
- window.addEventListener(event, listener, false);
18
- });
19
- return () => {
20
- // Be sure to unsubscribe if a new handler is set
21
- onlineEvents.forEach(event => {
22
- window.removeEventListener(event, listener);
23
- });
24
- };
25
- }
26
-
27
- return;
28
- };
29
- }
30
-
31
- onSubscribe() {
32
- if (!this.cleanup) {
33
- this.setEventListener(this.setup);
34
- }
35
- }
36
-
37
- onUnsubscribe() {
38
- if (!this.hasListeners()) {
39
- var _this$cleanup;
40
-
41
- (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);
42
- this.cleanup = undefined;
43
- }
44
- }
45
-
46
- setEventListener(setup) {
47
- var _this$cleanup2;
48
-
49
- this.setup = setup;
50
- (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);
51
- this.cleanup = setup(online => {
52
- if (typeof online === 'boolean') {
53
- this.setOnline(online);
54
- } else {
55
- this.onOnline();
56
- }
57
- });
58
- }
59
-
60
- setOnline(online) {
61
- const changed = this.online !== online;
62
-
63
- if (changed) {
64
- this.online = online;
65
- this.onOnline();
66
- }
67
- }
68
-
69
- onOnline() {
70
- this.listeners.forEach(({
71
- listener
72
- }) => {
73
- listener();
74
- });
75
- }
76
-
77
- isOnline() {
78
- if (typeof this.online === 'boolean') {
79
- return this.online;
80
- }
81
-
82
- if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {
83
- return true;
84
- }
85
-
86
- return navigator.onLine;
87
- }
88
-
89
- }
90
- const onlineManager = new OnlineManager();
91
-
92
- export { OnlineManager, onlineManager };
93
- //# sourceMappingURL=onlineManager.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"onlineManager.mjs","sources":["../../src/onlineManager.ts"],"sourcesContent":["import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype SetupFn = (\n setOnline: (online?: boolean) => void,\n) => (() => void) | undefined\n\nconst onlineEvents = ['online', 'offline'] as const\n\nexport class OnlineManager extends Subscribable {\n private online?: boolean\n private cleanup?: () => void\n\n private setup: SetupFn\n\n constructor() {\n super()\n this.setup = (onOnline) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline()\n // Listen to online\n onlineEvents.forEach((event) => {\n window.addEventListener(event, listener, false)\n })\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n onlineEvents.forEach((event) => {\n window.removeEventListener(event, listener)\n })\n }\n }\n\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.cleanup) {\n this.setEventListener(this.setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.cleanup?.()\n this.cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.setup = setup\n this.cleanup?.()\n this.cleanup = setup((online?: boolean) => {\n if (typeof online === 'boolean') {\n this.setOnline(online)\n } else {\n this.onOnline()\n }\n })\n }\n\n setOnline(online?: boolean): void {\n const changed = this.online !== online\n\n if (changed) {\n this.online = online\n this.onOnline()\n }\n }\n\n onOnline(): void {\n this.listeners.forEach(({ listener }) => {\n listener()\n })\n }\n\n isOnline(): boolean {\n if (typeof this.online === 'boolean') {\n return this.online\n }\n\n if (\n typeof navigator === 'undefined' ||\n typeof navigator.onLine === 'undefined'\n ) {\n return true\n }\n\n return navigator.onLine\n }\n}\n\nexport const onlineManager = new OnlineManager()\n"],"names":["onlineEvents","OnlineManager","Subscribable","constructor","setup","onOnline","isServer","window","addEventListener","listener","forEach","event","removeEventListener","onSubscribe","cleanup","setEventListener","onUnsubscribe","hasListeners","undefined","online","setOnline","changed","listeners","isOnline","navigator","onLine","onlineManager"],"mappings":"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"}