@fncts/observable 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/Action.d.ts +6 -0
  2. package/AnimationFrameAction.d.ts +11 -0
  3. package/AnimationFrameScheduler.d.ts +6 -0
  4. package/AsyncAction.d.ts +19 -0
  5. package/AsyncScheduler.d.ts +11 -0
  6. package/BehaviorSubject.d.ts +10 -0
  7. package/Notification.d.ts +59 -0
  8. package/Observable/api/connect.d.ts +10 -0
  9. package/Observable/api/connectable.d.ts +24 -0
  10. package/Observable/api/fromCallback.d.ts +11 -0
  11. package/Observable/api/fromEvent.d.ts +4 -0
  12. package/Observable/api/index.d.ts +14 -0
  13. package/Observable/api/race.d.ts +9 -0
  14. package/Observable/api/raceWith.d.ts +6 -0
  15. package/Observable/api/repeatWhen.d.ts +5 -0
  16. package/Observable/api/retryWhen.d.ts +10 -0
  17. package/Observable/api/share.d.ts +16 -0
  18. package/Observable/api/window.d.ts +8 -0
  19. package/Observable/api/windowCount.d.ts +6 -0
  20. package/Observable/api/windowTime.d.ts +12 -0
  21. package/Observable/api/windowToggle.d.ts +8 -0
  22. package/Observable/api/windowWhen.d.ts +9 -0
  23. package/Observable/api.d.ts +668 -0
  24. package/Observable/definition.d.ts +32 -0
  25. package/Observable/dom/animationFrames.d.ts +6 -0
  26. package/Observable/instances.d.ts +1 -0
  27. package/Observable.d.ts +19 -0
  28. package/Observer.d.ts +6 -0
  29. package/Operator.d.ts +19 -0
  30. package/Scheduler.d.ts +22 -0
  31. package/Subject.d.ts +48 -0
  32. package/Subscriber.d.ts +27 -0
  33. package/Subscription.d.ts +41 -0
  34. package/_cjs/Action.cjs +27 -0
  35. package/_cjs/Action.cjs.map +1 -0
  36. package/_cjs/AnimationFrameAction.cjs +48 -0
  37. package/_cjs/AnimationFrameAction.cjs.map +1 -0
  38. package/_cjs/AnimationFrameScheduler.cjs +51 -0
  39. package/_cjs/AnimationFrameScheduler.cjs.map +1 -0
  40. package/_cjs/AsyncAction.cjs +116 -0
  41. package/_cjs/AsyncAction.cjs.map +1 -0
  42. package/_cjs/AsyncScheduler.cjs +61 -0
  43. package/_cjs/AsyncScheduler.cjs.map +1 -0
  44. package/_cjs/BehaviorSubject.cjs +52 -0
  45. package/_cjs/BehaviorSubject.cjs.map +1 -0
  46. package/_cjs/Notification.cjs +110 -0
  47. package/_cjs/Notification.cjs.map +1 -0
  48. package/_cjs/Observable/api/connect.cjs +35 -0
  49. package/_cjs/Observable/api/connect.cjs.map +1 -0
  50. package/_cjs/Observable/api/connectable.cjs +64 -0
  51. package/_cjs/Observable/api/connectable.cjs.map +1 -0
  52. package/_cjs/Observable/api/fromCallback.cjs +74 -0
  53. package/_cjs/Observable/api/fromCallback.cjs.map +1 -0
  54. package/_cjs/Observable/api/fromEvent.cjs +22 -0
  55. package/_cjs/Observable/api/fromEvent.cjs.map +1 -0
  56. package/_cjs/Observable/api/index.cjs +188 -0
  57. package/_cjs/Observable/api/index.cjs.map +1 -0
  58. package/_cjs/Observable/api/race.cjs +47 -0
  59. package/_cjs/Observable/api/race.cjs.map +1 -0
  60. package/_cjs/Observable/api/raceWith.cjs +24 -0
  61. package/_cjs/Observable/api/raceWith.cjs.map +1 -0
  62. package/_cjs/Observable/api/repeatWhen.cjs +72 -0
  63. package/_cjs/Observable/api/repeatWhen.cjs.map +1 -0
  64. package/_cjs/Observable/api/retryWhen.cjs +61 -0
  65. package/_cjs/Observable/api/retryWhen.cjs.map +1 -0
  66. package/_cjs/Observable/api/share.cjs +115 -0
  67. package/_cjs/Observable/api/share.cjs.map +1 -0
  68. package/_cjs/Observable/api/window.cjs +53 -0
  69. package/_cjs/Observable/api/window.cjs.map +1 -0
  70. package/_cjs/Observable/api/windowCount.cjs +62 -0
  71. package/_cjs/Observable/api/windowCount.cjs.map +1 -0
  72. package/_cjs/Observable/api/windowTime.cjs +90 -0
  73. package/_cjs/Observable/api/windowTime.cjs.map +1 -0
  74. package/_cjs/Observable/api/windowToggle.cjs +92 -0
  75. package/_cjs/Observable/api/windowToggle.cjs.map +1 -0
  76. package/_cjs/Observable/api/windowWhen.cjs +68 -0
  77. package/_cjs/Observable/api/windowWhen.cjs.map +1 -0
  78. package/_cjs/Observable/api.cjs +2558 -0
  79. package/_cjs/Observable/api.cjs.map +1 -0
  80. package/_cjs/Observable/definition.cjs +76 -0
  81. package/_cjs/Observable/definition.cjs.map +1 -0
  82. package/_cjs/Observable/dom/animationFrames.cjs +51 -0
  83. package/_cjs/Observable/dom/animationFrames.cjs.map +1 -0
  84. package/_cjs/Observable/instances.cjs +6 -0
  85. package/_cjs/Observable/instances.cjs.map +1 -0
  86. package/_cjs/Observable.cjs +253 -0
  87. package/_cjs/Observable.cjs.map +1 -0
  88. package/_cjs/Observer.cjs +6 -0
  89. package/_cjs/Observer.cjs.map +1 -0
  90. package/_cjs/Operator.cjs +83 -0
  91. package/_cjs/Operator.cjs.map +1 -0
  92. package/_cjs/Scheduler.cjs +62 -0
  93. package/_cjs/Scheduler.cjs.map +1 -0
  94. package/_cjs/Subject.cjs +228 -0
  95. package/_cjs/Subject.cjs.map +1 -0
  96. package/_cjs/Subscriber.cjs +172 -0
  97. package/_cjs/Subscriber.cjs.map +1 -0
  98. package/_cjs/Subscription.cjs +174 -0
  99. package/_cjs/Subscription.cjs.map +1 -0
  100. package/_cjs/demo.cjs +40 -0
  101. package/_cjs/demo.cjs.map +1 -0
  102. package/_cjs/global.cjs +4 -0
  103. package/_cjs/global.cjs.map +1 -0
  104. package/_cjs/index.cjs +65 -0
  105. package/_cjs/index.cjs.map +1 -0
  106. package/_cjs/internal/animationFrameProvider.cjs +51 -0
  107. package/_cjs/internal/animationFrameProvider.cjs.map +1 -0
  108. package/_cjs/internal/args.cjs +26 -0
  109. package/_cjs/internal/args.cjs.map +1 -0
  110. package/_cjs/internal/intervalProvider.cjs +27 -0
  111. package/_cjs/internal/intervalProvider.cjs.map +1 -0
  112. package/_cjs/internal/performanceTimestampProvider.cjs +15 -0
  113. package/_cjs/internal/performanceTimestampProvider.cjs.map +1 -0
  114. package/_cjs/internal/timeoutProvider.cjs +27 -0
  115. package/_cjs/internal/timeoutProvider.cjs.map +1 -0
  116. package/_cjs/internal/timestampProvider.cjs +15 -0
  117. package/_cjs/internal/timestampProvider.cjs.map +1 -0
  118. package/_cjs/internal/util.cjs +107 -0
  119. package/_cjs/internal/util.cjs.map +1 -0
  120. package/_mjs/Action.mjs +14 -0
  121. package/_mjs/Action.mjs.map +1 -0
  122. package/_mjs/AnimationFrameAction.mjs +33 -0
  123. package/_mjs/AnimationFrameAction.mjs.map +1 -0
  124. package/_mjs/AnimationFrameScheduler.mjs +36 -0
  125. package/_mjs/AnimationFrameScheduler.mjs.map +1 -0
  126. package/_mjs/AsyncAction.mjs +99 -0
  127. package/_mjs/AsyncAction.mjs.map +1 -0
  128. package/_mjs/AsyncScheduler.mjs +45 -0
  129. package/_mjs/AsyncScheduler.mjs.map +1 -0
  130. package/_mjs/BehaviorSubject.mjs +38 -0
  131. package/_mjs/BehaviorSubject.mjs.map +1 -0
  132. package/_mjs/Notification.mjs +80 -0
  133. package/_mjs/Notification.mjs.map +1 -0
  134. package/_mjs/Observable/api/connect.mjs +21 -0
  135. package/_mjs/Observable/api/connect.mjs.map +1 -0
  136. package/_mjs/Observable/api/connectable.mjs +45 -0
  137. package/_mjs/Observable/api/connectable.mjs.map +1 -0
  138. package/_mjs/Observable/api/fromCallback.mjs +60 -0
  139. package/_mjs/Observable/api/fromCallback.mjs.map +1 -0
  140. package/_mjs/Observable/api/fromEvent.mjs +10 -0
  141. package/_mjs/Observable/api/fromEvent.mjs.map +1 -0
  142. package/_mjs/Observable/api/index.mjs +15 -0
  143. package/_mjs/Observable/api/index.mjs.map +1 -0
  144. package/_mjs/Observable/api/race.mjs +32 -0
  145. package/_mjs/Observable/api/race.mjs.map +1 -0
  146. package/_mjs/Observable/api/raceWith.mjs +12 -0
  147. package/_mjs/Observable/api/raceWith.mjs.map +1 -0
  148. package/_mjs/Observable/api/repeatWhen.mjs +57 -0
  149. package/_mjs/Observable/api/repeatWhen.mjs.map +1 -0
  150. package/_mjs/Observable/api/retryWhen.mjs +45 -0
  151. package/_mjs/Observable/api/retryWhen.mjs.map +1 -0
  152. package/_mjs/Observable/api/share.mjs +97 -0
  153. package/_mjs/Observable/api/share.mjs.map +1 -0
  154. package/_mjs/Observable/api/window.mjs +40 -0
  155. package/_mjs/Observable/api/window.mjs.map +1 -0
  156. package/_mjs/Observable/api/windowCount.mjs +50 -0
  157. package/_mjs/Observable/api/windowCount.mjs.map +1 -0
  158. package/_mjs/Observable/api/windowTime.mjs +73 -0
  159. package/_mjs/Observable/api/windowTime.mjs.map +1 -0
  160. package/_mjs/Observable/api/windowToggle.mjs +77 -0
  161. package/_mjs/Observable/api/windowToggle.mjs.map +1 -0
  162. package/_mjs/Observable/api/windowWhen.mjs +54 -0
  163. package/_mjs/Observable/api/windowWhen.mjs.map +1 -0
  164. package/_mjs/Observable/api.mjs +2291 -0
  165. package/_mjs/Observable/api.mjs.map +1 -0
  166. package/_mjs/Observable/definition.mjs +54 -0
  167. package/_mjs/Observable/definition.mjs.map +1 -0
  168. package/_mjs/Observable/dom/animationFrames.mjs +36 -0
  169. package/_mjs/Observable/dom/animationFrames.mjs.map +1 -0
  170. package/_mjs/Observable/instances.mjs +2 -0
  171. package/_mjs/Observable/instances.mjs.map +1 -0
  172. package/_mjs/Observable.mjs +25 -0
  173. package/_mjs/Observable.mjs.map +1 -0
  174. package/_mjs/Observer.mjs +2 -0
  175. package/_mjs/Observer.mjs.map +1 -0
  176. package/_mjs/Operator.mjs +63 -0
  177. package/_mjs/Operator.mjs.map +1 -0
  178. package/_mjs/Scheduler.mjs +41 -0
  179. package/_mjs/Scheduler.mjs.map +1 -0
  180. package/_mjs/Subject.mjs +204 -0
  181. package/_mjs/Subject.mjs.map +1 -0
  182. package/_mjs/Subscriber.mjs +147 -0
  183. package/_mjs/Subscriber.mjs.map +1 -0
  184. package/_mjs/Subscription.mjs +148 -0
  185. package/_mjs/Subscription.mjs.map +1 -0
  186. package/_mjs/demo.mjs +30 -0
  187. package/_mjs/demo.mjs.map +1 -0
  188. package/_mjs/global.mjs +2 -0
  189. package/_mjs/global.mjs.map +1 -0
  190. package/_mjs/index.mjs +15 -0
  191. package/_mjs/index.mjs.map +1 -0
  192. package/_mjs/internal/animationFrameProvider.mjs +38 -0
  193. package/_mjs/internal/animationFrameProvider.mjs.map +1 -0
  194. package/_mjs/internal/args.mjs +13 -0
  195. package/_mjs/internal/args.mjs.map +1 -0
  196. package/_mjs/internal/intervalProvider.mjs +20 -0
  197. package/_mjs/internal/intervalProvider.mjs.map +1 -0
  198. package/_mjs/internal/performanceTimestampProvider.mjs +8 -0
  199. package/_mjs/internal/performanceTimestampProvider.mjs.map +1 -0
  200. package/_mjs/internal/timeoutProvider.mjs +20 -0
  201. package/_mjs/internal/timeoutProvider.mjs.map +1 -0
  202. package/_mjs/internal/timestampProvider.mjs +8 -0
  203. package/_mjs/internal/timestampProvider.mjs.map +1 -0
  204. package/_mjs/internal/util.mjs +76 -0
  205. package/_mjs/internal/util.mjs.map +1 -0
  206. package/_src/Action.ts +10 -0
  207. package/_src/AnimationFrameAction.ts +27 -0
  208. package/_src/AnimationFrameScheduler.ts +30 -0
  209. package/_src/AsyncAction.ts +93 -0
  210. package/_src/AsyncScheduler.ts +41 -0
  211. package/_src/BehaviorSubject.ts +28 -0
  212. package/_src/Notification.ts +91 -0
  213. package/_src/Observable/api/connect.ts +23 -0
  214. package/_src/Observable/api/connectable.ts +52 -0
  215. package/_src/Observable/api/fromCallback.ts +57 -0
  216. package/_src/Observable/api/fromEvent.ts +12 -0
  217. package/_src/Observable/api/index.ts +14 -0
  218. package/_src/Observable/api/race.ts +31 -0
  219. package/_src/Observable/api/raceWith.ts +15 -0
  220. package/_src/Observable/api/repeatWhen.ts +63 -0
  221. package/_src/Observable/api/retryWhen.ts +47 -0
  222. package/_src/Observable/api/share.ts +107 -0
  223. package/_src/Observable/api/window.ts +44 -0
  224. package/_src/Observable/api/windowCount.ts +56 -0
  225. package/_src/Observable/api/windowTime.ts +102 -0
  226. package/_src/Observable/api/windowToggle.ts +84 -0
  227. package/_src/Observable/api/windowWhen.ts +59 -0
  228. package/_src/Observable/api.ts +2749 -0
  229. package/_src/Observable/definition.ts +69 -0
  230. package/_src/Observable/dom/animationFrames.ts +33 -0
  231. package/_src/Observable/instances.ts +106 -0
  232. package/_src/Observable.ts +27 -0
  233. package/_src/Observer.ts +5 -0
  234. package/_src/Operator.ts +73 -0
  235. package/_src/Scheduler.ts +52 -0
  236. package/_src/Subject.ts +171 -0
  237. package/_src/Subscriber.ts +130 -0
  238. package/_src/Subscription.ts +143 -0
  239. package/_src/demo.ts +29 -0
  240. package/_src/global.ts +141 -0
  241. package/_src/index.ts +14 -0
  242. package/_src/internal/animationFrameProvider.ts +37 -0
  243. package/_src/internal/args.ts +11 -0
  244. package/_src/internal/intervalProvider.ts +27 -0
  245. package/_src/internal/performanceTimestampProvider.ts +12 -0
  246. package/_src/internal/timeoutProvider.ts +27 -0
  247. package/_src/internal/timestampProvider.ts +14 -0
  248. package/_src/internal/util.ts +94 -0
  249. package/demo.d.ts +1 -0
  250. package/global.d.ts +125 -0
  251. package/index.d.ts +14 -0
  252. package/internal/animationFrameProvider.d.ts +12 -0
  253. package/internal/args.d.ts +3 -0
  254. package/internal/intervalProvider.d.ts +12 -0
  255. package/internal/performanceTimestampProvider.d.ts +6 -0
  256. package/internal/timeoutProvider.d.ts +12 -0
  257. package/internal/timestampProvider.d.ts +7 -0
  258. package/internal/util.d.ts +28 -0
  259. package/package.json +16 -0
@@ -0,0 +1,45 @@
1
+ import * as tsplus_module_1 from "@fncts/observable/Scheduler";
2
+ import * as tsplus_module_2 from "@fncts/observable/AsyncAction";
3
+ export class AsyncScheduler extends tsplus_module_1.Scheduler {
4
+ constructor(actionConstructor, now = tsplus_module_1.Scheduler.now) {
5
+ super(actionConstructor, now);
6
+ this.actions = [];
7
+ this.active = false;
8
+ this.scheduled = undefined;
9
+ }
10
+
11
+ flush(action) {
12
+ const {
13
+ actions
14
+ } = this;
15
+
16
+ if (this.active) {
17
+ actions.push(action);
18
+ return;
19
+ }
20
+
21
+ let error;
22
+ this.active = true;
23
+
24
+ do {
25
+ if (error = action.execute(action.state, action.delay)) {
26
+ break;
27
+ } // eslint-disable-next-line no-param-reassign
28
+
29
+ } while (action = actions.shift());
30
+
31
+ this.active = false;
32
+
33
+ if (error) {
34
+ // eslint-disable-next-line no-param-reassign
35
+ while (action = actions.shift()) {
36
+ action.unsubscribe();
37
+ }
38
+
39
+ throw error;
40
+ }
41
+ }
42
+
43
+ }
44
+ export const asyncScheduler = /*#__PURE__*/new AsyncScheduler(tsplus_module_2.AsyncAction);
45
+ //# sourceMappingURL=AsyncScheduler.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AsyncScheduler.mjs","mappings":";;AAAA,OAAM,MAAOA,cAAP,SAA8BC,yBAA9B,CAAuC;EAM3CC,YAAYC,iBAAZ,EAA8CC,MAAoBH,0BAAUG,GAA5E,EAA+E;IAC7E,MAAMD,iBAAN,EAAyBC,GAAzB;IANK,eAAmC,EAAnC;IAEP,cAAiB,KAAjB;IACA,iBAAiBC,SAAjB;EAIC;;EAEDC,KAAK,CAACC,MAAD,EAAyB;IAC5B,MAAM;MAAEC;IAAF,IAAc,IAApB;;IAEA,IAAI,KAAKC,MAAT,EAAiB;MACfD,OAAO,CAACE,IAAR,CAAaH,MAAb;MACA;IACD;;IAED,IAAII,KAAJ;IACA,KAAKF,MAAL,GAAc,IAAd;;IAEA,GAAG;MACD,IAAKE,KAAK,GAAGJ,MAAM,CAACK,OAAP,CAAeL,MAAM,CAACM,KAAtB,EAA6BN,MAAM,CAACO,KAApC,CAAb,EAA2D;QACzD;MACD,CAHA,CAID;;IACD,CALD,QAKUP,MAAM,GAAGC,OAAO,CAACO,KAAR,EALnB;;IAOA,KAAKN,MAAL,GAAc,KAAd;;IAEA,IAAIE,KAAJ,EAAW;MACT;MACA,OAAQJ,MAAM,GAAGC,OAAO,CAACO,KAAR,EAAjB,EAAoC;QAClCR,MAAM,CAACS,WAAP;MACD;;MACD,MAAML,KAAN;IACD;EACF;;AArC0C;AAwC7C,OAAO,MAAMM,cAAc,gBAAG,IAAIjB,cAAJ,CAAkBkB,gBAACC,WAAnB,CAAvB","names":["AsyncScheduler","tsplus_module_1","constructor","actionConstructor","now","undefined","flush","action","actions","active","push","error","execute","state","delay","shift","unsubscribe","asyncScheduler","tsplus_module_2","AsyncAction"],"sourceRoot":"","sources":["../_src/AsyncScheduler.ts"],"sourcesContent":[null]}
@@ -0,0 +1,38 @@
1
+ import * as tsplus_module_1 from "@fncts/observable/Subject";
2
+ export class BehaviorSubject extends tsplus_module_1.Subject {
3
+ constructor(_value) {
4
+ super();
5
+ this._value = _value;
6
+ }
7
+
8
+ get value() {
9
+ return this.getValue();
10
+ }
11
+
12
+ getValue() {
13
+ const {
14
+ hasError,
15
+ thrownError,
16
+ _value
17
+ } = this;
18
+
19
+ if (hasError) {
20
+ throw thrownError;
21
+ }
22
+
23
+ this.throwIfClosed();
24
+ return _value;
25
+ }
26
+
27
+ subscribeInternal(subscriber) {
28
+ const subscription = super.subscribe(subscriber);
29
+ !subscription.closed && subscriber.next(this._value);
30
+ return subscription;
31
+ }
32
+
33
+ next(value) {
34
+ super.next(this._value = value);
35
+ }
36
+
37
+ }
38
+ //# sourceMappingURL=BehaviorSubject.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BehaviorSubject.mjs","mappings":";AAAA,OAAM,MAAOA,eAAP,SAAqCC,uBAArC,CAAkD;EACtDC,YAAoBC,MAApB,EAA6B;IAC3B;IADkB;EAEnB;;EAEQ,IAALC,KAAK;IACP,OAAO,KAAKC,QAAL,EAAP;EACD;;EAEDA,QAAQ;IACN,MAAM;MAAEC,QAAF;MAAYC,WAAZ;MAAyBJ;IAAzB,IAAoC,IAA1C;;IACA,IAAIG,QAAJ,EAAc;MACZ,MAAMC,WAAN;IACD;;IACD,KAAKC,aAAL;IACA,OAAOL,MAAP;EACD;;EAESM,iBAAiB,CAACC,UAAD,EAA6B;IACtD,MAAMC,YAAY,GAAG,MAAMC,SAAN,CAAgBF,UAAhB,CAArB;IACA,CAACC,YAAY,CAACE,MAAd,IAAwBH,UAAU,CAACI,IAAX,CAAgB,KAAKX,MAArB,CAAxB;IACA,OAAOQ,YAAP;EACD;;EAEDG,IAAI,CAACV,KAAD,EAAS;IACX,MAAMU,IAAN,CAAY,KAAKX,MAAL,GAAcC,KAA1B;EACD;;AA1BqD","names":["BehaviorSubject","tsplus_module_1","constructor","_value","value","getValue","hasError","thrownError","throwIfClosed","subscribeInternal","subscriber","subscription","subscribe","closed","next"],"sourceRoot":"","sources":["../_src/BehaviorSubject.ts"],"sourcesContent":[null]}
@@ -0,0 +1,80 @@
1
+ var _a, _b, _c;
2
+
3
+ export const match_ = match_1;
4
+ export const NextTypeId = /*#__PURE__*/Symbol.for("fncts.observable.Notification.Next");
5
+ export class Next {
6
+ constructor(value) {
7
+ this.value = value;
8
+ this._tag = "Next";
9
+ this[_a] = NextTypeId;
10
+ }
11
+
12
+ }
13
+ _a = NextTypeId;
14
+ export const FailTypeId = /*#__PURE__*/Symbol.for("fncts.observable.Notification.Fail");
15
+ export class Fail {
16
+ constructor(error) {
17
+ this.error = error;
18
+ this._tag = "Fail";
19
+ this[_b] = FailTypeId;
20
+ }
21
+
22
+ }
23
+ _b = FailTypeId;
24
+ export const CompleteTypeId = /*#__PURE__*/Symbol.for("fncts.observable.Notification.Complete");
25
+ export class Complete {
26
+ constructor() {
27
+ this._tag = "Complete";
28
+ this[_c] = CompleteTypeId;
29
+ }
30
+
31
+ }
32
+ _c = CompleteTypeId;
33
+ const COMPLETE = /*#__PURE__*/new Complete();
34
+ export const Notification = {};
35
+ /**
36
+ * @tsplus static fncts.observable.NotificationOps next
37
+ */
38
+
39
+ export function next(value) {
40
+ return new Next(value);
41
+ }
42
+ /**
43
+ * @tsplus static fncts.observable.NotificationOps error
44
+ */
45
+
46
+ export function error(error) {
47
+ return new Fail(error);
48
+ }
49
+ /**
50
+ * @tsplus static fncts.observable.NotificationOps complete
51
+ */
52
+
53
+ export function complete() {
54
+ return COMPLETE;
55
+ }
56
+ /**
57
+ * @tsplus fluent fncts.observable.Notification match
58
+ */
59
+
60
+ function match_1(fa, onNext, onFail, onComplete) {
61
+ switch (fa._tag) {
62
+ case "Next":
63
+ return onNext(fa.value);
64
+
65
+ case "Fail":
66
+ return onFail(fa.error);
67
+
68
+ case "Complete":
69
+ return onComplete();
70
+ }
71
+ }
72
+ /**
73
+ * @tsplus fluent fncts.observable.Notification observe
74
+ */
75
+
76
+
77
+ export function observe_(notification, observer) {
78
+ return match_1(notification, a => observer.next?.(a), e => observer.error?.(e), () => observer.complete?.());
79
+ }
80
+ //# sourceMappingURL=Notification.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Notification.mjs","mappings":";;aAgEgBA,MAAM;AAhEtB,OAAO,MAAMC,UAAU,gBAAGC,MAAM,CAACC,GAAP,CAAW,oCAAX,CAAnB;AAGP,OAAM,MAAOC,IAAP,CAAW;EAGfC,YAAqBC,KAArB,EAA6B;IAAR;IAFZ,YAA2B,MAA3B;IACA,WAA2BL,UAA3B;EACwB;;AAHlB;KAELA;AAIZ,OAAO,MAAMM,UAAU,gBAAGL,MAAM,CAACC,GAAP,CAAW,oCAAX,CAAnB;AAGP,OAAM,MAAOK,IAAP,CAAW;EAGfH,YAAqBI,KAArB,EAAoC;IAAf;IAFZ,YAA2B,MAA3B;IACA,WAA2BF,UAA3B;EAC+B;;AAHzB;KAELA;AAIZ,OAAO,MAAMG,cAAc,gBAAGR,MAAM,CAACC,GAAP,CAAW,wCAAX,CAAvB;AAGP,OAAM,MAAOQ,QAAP,CAAe;EAArBN;IACW,YAAO,UAAP;IACA,WAAmCK,cAAnC;EACV;;AAHoB;KAETA;AAGZ,MAAME,QAAQ,gBAAG,IAAID,QAAJ,EAAjB;AAYA,OAAO,MAAME,YAAY,GAAoB,EAAtC;AAEP;;;;AAGA,OAAM,SAAUC,IAAV,CAAqCR,KAArC,EAA6C;EACjD,OAAO,IAAIF,IAAJ,CAASE,KAAT,CAAP;AACD;AAED;;;;AAGA,OAAM,SAAUG,KAAV,CAAsCA,KAAtC,EAAqD;EACzD,OAAO,IAAID,IAAJ,CAASC,KAAT,CAAP;AACD;AAED;;;;AAGA,OAAM,SAAUM,QAAV,GAAkB;EACtB,OAAOH,QAAP;AACD;AAED;;;;AAGA,iBACEI,EADF,EAEEC,MAFF,EAGEC,MAHF,EAIEC,UAJF,EAIqB;EAEnB,QAAQH,EAAE,CAACI,IAAX;IACE,KAAK,MAAL;MACE,OAAOH,MAAM,CAACD,EAAE,CAACV,KAAJ,CAAb;;IACF,KAAK,MAAL;MACE,OAAOY,MAAM,CAACF,EAAE,CAACP,KAAJ,CAAb;;IACF,KAAK,UAAL;MACE,OAAOU,UAAU,EAAjB;EANJ;AAQD;AAED;;;;;AAGA,OAAM,SAAUE,QAAV,CAAyBC,YAAzB,EAA2DC,QAA3D,EAA4F;EAChG,OAAOC,QACLF,YADK,EAEJG,CAAD,IAAOF,QAAQ,CAACT,IAAT,GAAgBW,CAAhB,CAFF,EAGJC,CAAD,IAAOH,QAAQ,CAACd,KAAT,GAAiBiB,CAAjB,CAHF,EAIL,MAAMH,QAAQ,CAACR,QAAT,IAJD,CAAP;AAMD","names":["match_","NextTypeId","Symbol","for","Next","constructor","value","FailTypeId","Fail","error","CompleteTypeId","Complete","COMPLETE","Notification","next","complete","fa","onNext","onFail","onComplete","_tag","observe_","notification","observer","match_1","a","e"],"sourceRoot":"","sources":["../_src/Notification.ts"],"sourcesContent":[null]}
@@ -0,0 +1,21 @@
1
+ import * as tsplus_module_1 from "@fncts/observable/Subject";
2
+ import * as tsplus_module_2 from "@fncts/observable/Observable/api";
3
+ import * as tsplus_module_3 from "@fncts/observable/Operator";
4
+ const DEFAULT_CONNECT_CONFIG = {
5
+ connector: () => new tsplus_module_1.Subject()
6
+ };
7
+ /**
8
+ * @tsplus fluent fncts.observable.Observable connect
9
+ */
10
+
11
+ export function connect(fa, selector, config = DEFAULT_CONNECT_CONFIG) {
12
+ const {
13
+ connector
14
+ } = config;
15
+ return tsplus_module_3.operate_(fa, (source, subscriber) => {
16
+ const subject = connector();
17
+ tsplus_module_2.from(selector(tsplus_module_2.fromSubscribable(subject))).subscribe(subscriber);
18
+ subscriber.add(source.subscribe(subject));
19
+ });
20
+ }
21
+ //# sourceMappingURL=connect.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.mjs","mappings":";;;AAIA,MAAMA,sBAAsB,GAA4B;EACtDC,SAAS,EAAE,MAAM,oBAAIC,OAAJ;AADqC,CAAxD;AAIA;;;;AAGA,OAAM,SAAUC,OAAV,CACJC,EADI,EAEJC,QAFI,EAGJC,SAA8BN,sBAH1B,EAGgD;EAEpD,MAAM;IAAEC;EAAF,IAAgBK,MAAtB;EACA,OAAOC,yBAASH,EAAT,EAAa,CAACI,MAAD,EAASC,UAAT,KAAuB;IACzC,MAAMC,OAAO,GAAGT,SAAS,EAAzB;IACAU,qBAAgBN,QAAQ,CAACM,iCAA4BD,OAA5B,CAAD,CAAxB,EAAgEE,SAAhE,CAA0EH,UAA1E;IACAA,UAAU,CAACI,GAAX,CAAeL,MAAM,CAACI,SAAP,CAAiBF,OAAjB,CAAf;EACD,CAJM,CAAP;AAKD","names":["DEFAULT_CONNECT_CONFIG","connector","Subject","connect","fa","selector","config","tsplus_module_3","source","subscriber","subject","tsplus_module_2","subscribe","add"],"sourceRoot":"","sources":["../../../_src/Observable/api/connect.ts"],"sourcesContent":[null]}
@@ -0,0 +1,45 @@
1
+ import * as tsplus_module_1 from "@fncts/observable/Subject";
2
+ import * as tsplus_module_2 from "@fncts/observable/Observable";
3
+ import * as tsplus_module_3 from "@fncts/observable/Observable/api";
4
+ const DEFAULT_CONFIG = {
5
+ connector: () => new tsplus_module_1.Subject(),
6
+ resetOnDisconnect: false
7
+ };
8
+ export class Connectable extends tsplus_module_2.Observable {
9
+ constructor(source, config) {
10
+ const {
11
+ connector,
12
+ resetOnDisconnect = true
13
+ } = config;
14
+ const subject = connector();
15
+ super(subscriber => {
16
+ return subject.subscribe(subscriber);
17
+ });
18
+ this.connection = null;
19
+ this.subject = subject;
20
+ this.connector = connector;
21
+ this.resetOnDisconnect = resetOnDisconnect;
22
+ this.source = tsplus_module_3.from(source);
23
+ }
24
+
25
+ connect() {
26
+ if (!this.connection || this.connection.closed) {
27
+ this.connection = tsplus_module_3.defer(() => this.source).subscribe(this.subject);
28
+
29
+ if (this.resetOnDisconnect) {
30
+ this.connection.add(() => this.subject = this.connector());
31
+ }
32
+ }
33
+
34
+ return this.connection;
35
+ }
36
+
37
+ }
38
+ /**
39
+ * @tsplus fluent fncts.observable.Observable connectable
40
+ */
41
+
42
+ export function connectable(source, config = DEFAULT_CONFIG) {
43
+ return new Connectable(source, config);
44
+ }
45
+ //# sourceMappingURL=connectable.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectable.mjs","mappings":";;;AASA,MAAMA,cAAc,GAAgC;EAClDC,SAAS,EAAE,MAAM,oBAAIC,OAAJ,EADiC;EAElDC,iBAAiB,EAAE;AAF+B,CAApD;AAKA,OAAM,MAAOC,WAAP,SAAiCC,0BAAjC,CAAiD;EAMrDC,YAAYC,MAAZ,EAA2CC,MAA3C,EAA0E;IACxE,MAAM;MAAEP,SAAF;MAAaE,iBAAiB,GAAG;IAAjC,IAA0CK,MAAhD;IACA,MAAMC,OAAO,GAAGR,SAAS,EAAzB;IACA,MAAOS,UAAD,IAAe;MACnB,OAAOD,OAAO,CAACE,SAAR,CAAkBD,UAAlB,CAAP;IACD,CAFD;IAGA,KAAKE,UAAL,GAAyB,IAAzB;IACA,KAAKH,OAAL,GAAyBA,OAAzB;IACA,KAAKR,SAAL,GAAyBA,SAAzB;IACA,KAAKE,iBAAL,GAAyBA,iBAAzB;IACA,KAAKI,MAAL,GAAyBM,qBAAgBN,MAAhB,CAAzB;EACD;;EACDO,OAAO;IACL,IAAI,CAAC,KAAKF,UAAN,IAAoB,KAAKA,UAAL,CAAgBG,MAAxC,EAAgD;MAC9C,KAAKH,UAAL,GAAkBC,4BAAiB,KAAKN,MAAtB,EAA8BI,SAA9B,CAAwC,KAAKF,OAA7C,CAAlB;;MACA,IAAI,KAAKN,iBAAT,EAA4B;QAC1B,KAAKS,UAAL,CAAgBI,GAAhB,CAAoB,MAAO,KAAKP,OAAL,GAAe,KAAKR,SAAL,EAA1C;MACD;IACF;;IACD,OAAO,KAAKW,UAAZ;EACD;;AA1BoD;AA6BvD;;;;AAGA,OAAM,SAAUK,WAAV,CACJV,MADI,EAEJC,SAAkCR,cAF9B,EAE4C;EAEhD,OAAO,IAAII,WAAJ,CAAgBG,MAAhB,EAAwBC,MAAxB,CAAP;AACD","names":["DEFAULT_CONFIG","connector","Subject","resetOnDisconnect","Connectable","tsplus_module_2","constructor","source","config","subject","subscriber","subscribe","connection","tsplus_module_3","connect","closed","add","connectable"],"sourceRoot":"","sources":["../../../_src/Observable/api/connectable.ts"],"sourcesContent":[null]}
@@ -0,0 +1,60 @@
1
+ import * as tsplus_module_1 from "@fncts/observable/Subject";
2
+ import * as tsplus_module_2 from "@fncts/observable/Observable";
3
+ /**
4
+ * @tsplus static fncts.observable.ObservableOps fromCallback
5
+ */
6
+
7
+ export function fromCallback(callbackFunc) {
8
+ // @ts-expect-error
9
+ return fromCallbackInternal(false, callbackFunc);
10
+ }
11
+ /**
12
+ * @tsplus static fncts.observable.ObservableOps fromNodeCallback
13
+ */
14
+
15
+ export function fromNodeCallback(callbackFunc) {
16
+ // @ts-expect-error
17
+ return fromCallbackInternal(true, callbackFunc);
18
+ }
19
+
20
+ function fromCallbackInternal(isNodeStyle, callbackFunc) {
21
+ return function (...args) {
22
+ const subject = new tsplus_module_1.AsyncSubject();
23
+ let uninitialized = true;
24
+ return new tsplus_module_2.Observable(subscriber => {
25
+ const subs = subject.subscribe(subscriber);
26
+
27
+ if (uninitialized) {
28
+ uninitialized = false;
29
+ let isAsync = false;
30
+ let isComplete = false;
31
+ callbackFunc.apply(this, [...args, (...results) => {
32
+ if (isNodeStyle) {
33
+ const err = results.shift();
34
+
35
+ if (err != null) {
36
+ subject.error(err);
37
+ return;
38
+ }
39
+ }
40
+
41
+ subject.next(1 < results.length ? results : results[0]);
42
+ isComplete = true;
43
+
44
+ if (isAsync) {
45
+ subject.complete();
46
+ }
47
+ }]);
48
+
49
+ if (isComplete) {
50
+ subject.complete();
51
+ }
52
+
53
+ isAsync = true;
54
+ }
55
+
56
+ return subs;
57
+ });
58
+ };
59
+ }
60
+ //# sourceMappingURL=fromCallback.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fromCallback.mjs","mappings":";;AAAA;;;;AAGA,OAAM,SAAUA,YAAV,CACJC,YADI,EACwD;EAE5D;EACA,OAAOC,oBAAoB,CAAC,KAAD,EAAQD,YAAR,CAA3B;AACD;AAED;;;;AAGA,OAAM,SAAUE,gBAAV,CACJF,YADI,EACgE;EAEpE;EACA,OAAOC,oBAAoB,CAAC,IAAD,EAAOD,YAAP,CAA3B;AACD;;AAED,SAASC,oBAAT,CAA8BE,WAA9B,EAAoDH,YAApD,EAAqE;EACnE,OAAO,UAAqB,GAAGI,IAAxB,EAAmC;IACxC,MAAMC,OAAO,GAAO,oBAAIC,YAAJ,EAApB;IACA,IAAIC,aAAa,GAAG,IAApB;IACA,OAAO,oBAAIC,UAAJ,CAAgBC,UAAD,IAAe;MACnC,MAAMC,IAAI,GAAGL,OAAO,CAACM,SAAR,CAAkBF,UAAlB,CAAb;;MACA,IAAIF,aAAJ,EAAmB;QACjBA,aAAa,GAAI,KAAjB;QACA,IAAIK,OAAO,GAAM,KAAjB;QACA,IAAIC,UAAU,GAAG,KAAjB;QACAb,YAAY,CAACc,KAAb,CAAmB,IAAnB,EAAyB,CACvB,GAAGV,IADoB,EAEvB,CAAC,GAAGW,OAAJ,KAAsB;UACpB,IAAIZ,WAAJ,EAAiB;YACf,MAAMa,GAAG,GAAGD,OAAO,CAACE,KAAR,EAAZ;;YACA,IAAID,GAAG,IAAI,IAAX,EAAiB;cACfX,OAAO,CAACa,KAAR,CAAcF,GAAd;cACA;YACD;UACF;;UACDX,OAAO,CAACc,IAAR,CAAa,IAAIJ,OAAO,CAACK,MAAZ,GAAqBL,OAArB,GAA+BA,OAAO,CAAC,CAAD,CAAnD;UACAF,UAAU,GAAG,IAAb;;UACA,IAAID,OAAJ,EAAa;YACXP,OAAO,CAACgB,QAAR;UACD;QACF,CAfsB,CAAzB;;QAiBA,IAAIR,UAAJ,EAAgB;UACdR,OAAO,CAACgB,QAAR;QACD;;QAEDT,OAAO,GAAG,IAAV;MACD;;MACD,OAAOF,IAAP;IACD,CA9BM,CAAP;EA+BD,CAlCD;AAmCD","names":["fromCallback","callbackFunc","fromCallbackInternal","fromNodeCallback","isNodeStyle","args","subject","AsyncSubject","uninitialized","Observable","subscriber","subs","subscribe","isAsync","isComplete","apply","results","err","shift","error","next","length","complete"],"sourceRoot":"","sources":["../../../_src/Observable/api/fromCallback.ts"],"sourcesContent":[null]}
@@ -0,0 +1,10 @@
1
+ import * as tsplus_module_1 from "@fncts/observable/Observable";
2
+ export function fromEvent(addHandler, removeHandler) {
3
+ return new tsplus_module_1.Observable(subscriber => {
4
+ const handler = (...e) => subscriber.next(e.length === 1 ? e[0] : e);
5
+
6
+ const retValue = addHandler(handler);
7
+ return removeHandler && (() => removeHandler(handler, retValue));
8
+ });
9
+ }
10
+ //# sourceMappingURL=fromEvent.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fromEvent.mjs","mappings":";AAEA,OAAM,SAAUA,SAAV,CACJC,UADI,EAEJC,aAFI,EAEyD;EAE7D,OAAO,oBAAIC,UAAJ,CAAgBC,UAAD,IAAe;IACnC,MAAMC,OAAO,GAAI,CAAC,GAAGC,CAAJ,KAAiBF,UAAU,CAACG,IAAX,CAAgBD,CAAC,CAACE,MAAF,KAAa,CAAb,GAAiBF,CAAC,CAAC,CAAD,CAAlB,GAAwBA,CAAxC,CAAlC;;IACA,MAAMG,QAAQ,GAAGR,UAAU,CAACI,OAAD,CAA3B;IACA,OAAOH,aAAa,KAAK,MAAMA,aAAa,CAACG,OAAD,EAAUI,QAAV,CAAxB,CAApB;EACD,CAJM,CAAP;AAKD","names":["fromEvent","addHandler","removeHandler","Observable","subscriber","handler","e","next","length","retValue"],"sourceRoot":"","sources":["../../../_src/Observable/api/fromEvent.ts"],"sourcesContent":[null]}
@@ -0,0 +1,15 @@
1
+ export * from "./connect.mjs";
2
+ export * from "./connectable.mjs";
3
+ export * from "./fromCallback.mjs";
4
+ export * from "./fromEvent.mjs";
5
+ export * from "./race.mjs";
6
+ export * from "./raceWith.mjs";
7
+ export * from "./repeatWhen.mjs";
8
+ export * from "./retryWhen.mjs";
9
+ export * from "./share.mjs";
10
+ export * from "./window.mjs";
11
+ export * from "./windowCount.mjs";
12
+ export * from "./windowTime.mjs";
13
+ export * from "./windowToggle.mjs";
14
+ export * from "./windowWhen.mjs";
15
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","mappings":"AAAA,cAAc,eAAd;AACA,cAAc,mBAAd;AACA,cAAc,oBAAd;AACA,cAAc,iBAAd;AACA,cAAc,YAAd;AACA,cAAc,gBAAd;AACA,cAAc,kBAAd;AACA,cAAc,iBAAd;AACA,cAAc,aAAd;AACA,cAAc,cAAd;AACA,cAAc,mBAAd;AACA,cAAc,kBAAd;AACA,cAAc,oBAAd;AACA,cAAc,kBAAd","names":[],"sourceRoot":"","sources":["../../../_src/Observable/api/index.ts"],"sourcesContent":[null]}
@@ -0,0 +1,32 @@
1
+ import * as tsplus_module_1 from "@fncts/observable/Observable/api";
2
+ import * as tsplus_module_2 from "@fncts/observable/Observable";
3
+ import * as tsplus_module_3 from "@fncts/observable/Operator";
4
+ /**
5
+ * @tsplus static fncts.observable.ObservableOps race
6
+ */
7
+
8
+ export function race(...sources) {
9
+ return sources.length === 1 ? tsplus_module_1.from(sources[0]) : new tsplus_module_2.Observable(raceInit(sources));
10
+ }
11
+ export function raceInit(sources) {
12
+ return subscriber => {
13
+ let subscriptions = [];
14
+
15
+ for (let i = 0; subscriptions && !subscriber.closed && i < sources.length; i++) {
16
+ subscriptions.push(tsplus_module_1.from(sources[i]).subscribe(tsplus_module_3.operatorSubscriber(subscriber, {
17
+ next: value => {
18
+ if (subscriptions) {
19
+ for (let s = 0; s < subscriptions.length; s++) {
20
+ s !== i && subscriptions[s].unsubscribe();
21
+ }
22
+
23
+ subscriptions = null;
24
+ }
25
+
26
+ subscriber.next(value);
27
+ }
28
+ })));
29
+ }
30
+ };
31
+ }
32
+ //# sourceMappingURL=race.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"race.mjs","mappings":";;;AAAA;;;;AAGA,OAAM,SAAUA,IAAV,CACJ,GAAGC,OADC,EACS;EAEb,OAAOA,OAAO,CAACC,MAAR,KAAmB,CAAnB,GAAuBC,qBAAgBF,OAAO,CAAC,CAAD,CAAvB,CAAvB,GAAsD,oBAAIG,UAAJ,CAAeC,QAAQ,CAACJ,OAAD,CAAvB,CAA7D;AACD;AAED,OAAM,SAAUI,QAAV,CAAyBJ,OAAzB,EAAsE;EAC1E,OAAQK,UAAD,IAAiC;IACtC,IAAIC,aAAa,GAAmB,EAApC;;IACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBD,aAAa,IAAI,CAACD,UAAU,CAACG,MAA7B,IAAuCD,CAAC,GAAGP,OAAO,CAACC,MAAnE,EAA2EM,CAAC,EAA5E,EAAgF;MAC9ED,aAAa,CAACG,IAAd,CACEP,qBAAgBF,OAAO,CAACO,CAAD,CAAvB,EAA6BG,SAA7B,CACEC,mCAAmBN,UAAnB,EAA+B;QAC7BO,IAAI,EAAGC,KAAD,IAAU;UACd,IAAIP,aAAJ,EAAmB;YACjB,KAAK,IAAIQ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGR,aAAa,CAACL,MAAlC,EAA0Ca,CAAC,EAA3C,EAA+C;cAC7CA,CAAC,KAAKP,CAAN,IAAWD,aAAa,CAACQ,CAAD,CAAb,CAAkBC,WAAlB,EAAX;YACD;;YACDT,aAAa,GAAG,IAAhB;UACD;;UACDD,UAAU,CAACO,IAAX,CAAgBC,KAAhB;QACD;MAT4B,CAA/B,CADF,CADF;IAeD;EACF,CAnBD;AAoBD","names":["race","sources","length","tsplus_module_1","Observable","raceInit","subscriber","subscriptions","i","closed","push","subscribe","tsplus_module_3","next","value","s","unsubscribe"],"sourceRoot":"","sources":["../../../_src/Observable/api/race.ts"],"sourcesContent":[null]}
@@ -0,0 +1,12 @@
1
+ import * as tsplus_module_1 from "@fncts/observable/Operator";
2
+ import { raceInit } from "./race.mjs";
3
+ /**
4
+ * @tsplus fluent fncts.observable.Observablen raceWith
5
+ */
6
+
7
+ export function raceWith_(fa, ...sources) {
8
+ return !sources.length ? fa : tsplus_module_1.operate_(fa, (source, subscriber) => {
9
+ raceInit([source, ...sources])(subscriber);
10
+ });
11
+ }
12
+ //# sourceMappingURL=raceWith.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raceWith.mjs","mappings":";AAAA,SAASA,QAAT,QAAyB,YAAzB;AAEA;;;;AAGA,OAAM,SAAUC,SAAV,CACJC,EADI,EAEJ,GAAGC,OAFC,EAES;EAEb,OAAO,CAACA,OAAO,CAACC,MAAT,GACHF,EADG,GAEHG,6BAAW,CAACC,MAAD,EAASC,UAAT,KAAuB;IAChCP,QAAQ,CAAC,CAACM,MAAD,EAAS,GAAGH,OAAZ,CAAD,CAAR,CAA+BI,UAA/B;EACD,CAFD,CAFJ;AAKD","names":["raceInit","raceWith_","fa","sources","length","tsplus_module_1","source","subscriber"],"sourceRoot":"","sources":["../../../_src/Observable/api/raceWith.ts"],"sourcesContent":[null]}
@@ -0,0 +1,57 @@
1
+ import * as tsplus_module_1 from "@fncts/observable/Subject";
2
+ import * as tsplus_module_2 from "@fncts/observable/Operator";
3
+ export function repeatWhen_(fa, notifier) {
4
+ return tsplus_module_2.operate_(fa, (source, subscriber) => {
5
+ let innerSub;
6
+ let syncResub = false;
7
+ let completions$;
8
+ let isNotifierComplete = false;
9
+ let isMainComplete = false;
10
+
11
+ const checkComplete = () => isMainComplete && isNotifierComplete && (subscriber.complete(), true);
12
+
13
+ const getCompletionSubject = () => {
14
+ if (!completions$) {
15
+ completions$ = new tsplus_module_1.Subject();
16
+ notifier(completions$).subscribe(tsplus_module_2.operatorSubscriber(subscriber, {
17
+ next: () => {
18
+ if (innerSub) {
19
+ loop();
20
+ } else {
21
+ syncResub = true;
22
+ }
23
+ },
24
+ complete: () => {
25
+ isNotifierComplete = true;
26
+ checkComplete();
27
+ }
28
+ }));
29
+ }
30
+
31
+ return completions$;
32
+ };
33
+
34
+ const loop = () => {
35
+ isMainComplete = false;
36
+ innerSub = source.subscribe(tsplus_module_2.operatorSubscriber(subscriber, {
37
+ complete: () => {
38
+ isMainComplete = true;
39
+ !checkComplete() && getCompletionSubject().next();
40
+ }
41
+ }));
42
+
43
+ if (syncResub) {
44
+ innerSub.unsubscribe();
45
+ innerSub = null;
46
+ syncResub = false;
47
+ loop();
48
+ }
49
+ };
50
+
51
+ loop();
52
+ });
53
+ }
54
+ export function repeatWhen(notifier) {
55
+ return fa => repeatWhen_(fa, notifier);
56
+ }
57
+ //# sourceMappingURL=repeatWhen.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repeatWhen.mjs","mappings":";;AAAA,OAAM,SAAUA,WAAV,CACJC,EADI,EAEJC,QAFI,EAEqE;EAEzE,OAAOC,6BAAW,CAACC,MAAD,EAASC,UAAT,KAAuB;IACvC,IAAIC,QAAJ;IACA,IAAIC,SAAS,GAAG,KAAhB;IACA,IAAIC,YAAJ;IACA,IAAIC,kBAAkB,GAAG,KAAzB;IACA,IAAIC,cAAc,GAAO,KAAzB;;IAEA,MAAMC,aAAa,GAAG,MAAMD,cAAc,IAAID,kBAAlB,KAAyCJ,UAAU,CAACO,QAAX,IAAuB,IAAhE,CAA5B;;IAEA,MAAMC,oBAAoB,GAAG,MAAK;MAChC,IAAI,CAACL,YAAL,EAAmB;QACjBA,YAAY,GAAG,oBAAIM,OAAJ,EAAf;QACAZ,QAAQ,CAACM,YAAD,CAAR,CAAuBO,SAAvB,CACEZ,mCAAmBE,UAAnB,EAA+B;UAC7BW,IAAI,EAAE,MAAK;YACT,IAAIV,QAAJ,EAAc;cACZW,IAAI;YACL,CAFD,MAEO;cACLV,SAAS,GAAG,IAAZ;YACD;UACF,CAP4B;UAQ7BK,QAAQ,EAAE,MAAK;YACbH,kBAAkB,GAAG,IAArB;YACAE,aAAa;UACd;QAX4B,CAA/B,CADF;MAeD;;MACD,OAAOH,YAAP;IACD,CApBD;;IAsBA,MAAMS,IAAI,GAAG,MAAK;MAChBP,cAAc,GAAG,KAAjB;MACAJ,QAAQ,GAASF,MAAM,CAACW,SAAP,CACfZ,mCAAmBE,UAAnB,EAA+B;QAC7BO,QAAQ,EAAE,MAAK;UACbF,cAAc,GAAG,IAAjB;UACA,CAACC,aAAa,EAAd,IAAoBE,oBAAoB,GAAGG,IAAvB,EAApB;QACD;MAJ4B,CAA/B,CADe,CAAjB;;MASA,IAAIT,SAAJ,EAAe;QACbD,QAAQ,CAACY,WAAT;QACAZ,QAAQ,GAAI,IAAZ;QACAC,SAAS,GAAG,KAAZ;QACAU,IAAI;MACL;IACF,CAjBD;;IAmBAA,IAAI;EACL,CAnDM,CAAP;AAoDD;AAED,OAAM,SAAUE,UAAV,CACJjB,QADI,EACqE;EAEzE,OAAQD,EAAD,IAAQD,WAAW,CAACC,EAAD,EAAKC,QAAL,CAA1B;AACD","names":["repeatWhen_","fa","notifier","tsplus_module_2","source","subscriber","innerSub","syncResub","completions$","isNotifierComplete","isMainComplete","checkComplete","complete","getCompletionSubject","Subject","subscribe","next","loop","unsubscribe","repeatWhen"],"sourceRoot":"","sources":["../../../_src/Observable/api/repeatWhen.ts"],"sourcesContent":[null]}
@@ -0,0 +1,45 @@
1
+ import * as tsplus_module_1 from "@fncts/observable/Subject";
2
+ import * as tsplus_module_2 from "@fncts/observable/Operator";
3
+ export const retryWhen_ = retryWhen_1;
4
+ /**
5
+ * @tsplus fluent fncts.observable.Observable retryWhen
6
+ */
7
+
8
+ function retryWhen_1(fa, notifier) {
9
+ return tsplus_module_2.operate_(fa, (source, subscriber) => {
10
+ let innerSub;
11
+ let syncResub = false;
12
+ let defects$;
13
+
14
+ const loop = () => {
15
+ innerSub = source.subscribe(tsplus_module_2.operatorSubscriber(subscriber, {
16
+ error: err => {
17
+ if (!defects$) {
18
+ defects$ = new tsplus_module_1.Subject();
19
+ notifier(defects$).subscribe(tsplus_module_2.operatorSubscriber(subscriber, {
20
+ next: () => innerSub ? loop() : syncResub = true
21
+ }));
22
+ }
23
+
24
+ if (defects$) {
25
+ defects$.next(err);
26
+ }
27
+ }
28
+ }));
29
+
30
+ if (syncResub) {
31
+ innerSub.unsubscribe();
32
+ innerSub = null;
33
+ syncResub = false;
34
+ loop();
35
+ }
36
+ };
37
+
38
+ loop();
39
+ });
40
+ }
41
+
42
+ export function retryWhen(notifier) {
43
+ return fa => retryWhen_1(fa, notifier);
44
+ }
45
+ //# sourceMappingURL=retryWhen.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retryWhen.mjs","mappings":";;aAGgBA,UAAU;AAH1B;;;;AAGA,qBACEC,EADF,EAEEC,QAFF,EAEwE;EAEtE,OAAOC,yBAASF,EAAT,EAAa,CAACG,MAAD,EAASC,UAAT,KAAuB;IACzC,IAAIC,QAAJ;IACA,IAAIC,SAAS,GAAG,KAAhB;IACA,IAAIC,QAAJ;;IAEA,MAAMC,IAAI,GAAG,MAAK;MAChBH,QAAQ,GAAGF,MAAM,CAACM,SAAP,CACTP,mCAAmBE,UAAnB,EAA+B;QAC7BM,KAAK,EAAGC,GAAD,IAAQ;UACb,IAAI,CAACJ,QAAL,EAAe;YACbA,QAAQ,GAAG,oBAAIK,OAAJ,EAAX;YACAX,QAAQ,CAACM,QAAD,CAAR,CAAmBE,SAAnB,CACEP,mCAAmBE,UAAnB,EAA+B;cAC7BS,IAAI,EAAE,MAAOR,QAAQ,GAAGG,IAAI,EAAP,GAAaF,SAAS,GAAG;YADjB,CAA/B,CADF;UAKD;;UACD,IAAIC,QAAJ,EAAc;YACZA,QAAQ,CAACM,IAAT,CAAcF,GAAd;UACD;QACF;MAb4B,CAA/B,CADS,CAAX;;MAiBA,IAAIL,SAAJ,EAAe;QACbD,QAAQ,CAACS,WAAT;QACAT,QAAQ,GAAI,IAAZ;QACAC,SAAS,GAAG,KAAZ;QACAE,IAAI;MACL;IACF,CAxBD;;IA0BAA,IAAI;EACL,CAhCM,CAAP;AAiCD;;AAED,OAAM,SAAUO,SAAV,CACJd,QADI,EAC6D;EAEjE,OAAQD,EAAD,IAAQgB,YAAWhB,EAAX,EAAeC,QAAf,CAAf;AACD","names":["retryWhen_","fa","notifier","tsplus_module_2","source","subscriber","innerSub","syncResub","defects$","loop","subscribe","error","err","Subject","next","unsubscribe","retryWhen","retryWhen_1"],"sourceRoot":"","sources":["../../../_src/Observable/api/retryWhen.ts"],"sourcesContent":[null]}
@@ -0,0 +1,97 @@
1
+ import * as tsplus_module_1 from "@fncts/observable/Subject";
2
+ import * as tsplus_module_2 from "@fncts/observable/Subscriber";
3
+ import * as tsplus_module_3 from "@fncts/observable/Observable/api";
4
+ import * as tsplus_module_4 from "@fncts/observable/Operator";
5
+ export const share_ = share_1;
6
+ /**
7
+ * @tsplus fluent fncts.observable.Observable share
8
+ */
9
+
10
+ function share_1(fa, options = {}) {
11
+ const {
12
+ connector = () => new tsplus_module_1.Subject(),
13
+ resetOnDefect = true,
14
+ resetOnComplete = true,
15
+ resetOnRefCountZero = true
16
+ } = options;
17
+ let connection = null;
18
+ let resetConnection = null;
19
+ let subject = null;
20
+ let refCount = 0;
21
+ let hasCompleted = false;
22
+ let hasErrored = false;
23
+
24
+ const cancelReset = () => {
25
+ resetConnection?.unsubscribe();
26
+ resetConnection = null;
27
+ };
28
+
29
+ const reset = () => {
30
+ cancelReset();
31
+ connection = subject = null;
32
+ hasCompleted = hasErrored = false;
33
+ };
34
+
35
+ const resetAndUnsubscribe = () => {
36
+ const conn = connection;
37
+ reset();
38
+ conn?.unsubscribe();
39
+ };
40
+
41
+ return tsplus_module_4.operate_(fa, (source, subscriber) => {
42
+ refCount++;
43
+
44
+ if (!hasErrored && !hasCompleted) {
45
+ cancelReset();
46
+ }
47
+
48
+ const dest = subject || (subject = connector());
49
+ subscriber.add(() => {
50
+ refCount--;
51
+
52
+ if (refCount === 0 && !hasErrored && !hasCompleted) {
53
+ resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero);
54
+ }
55
+ });
56
+ dest.subscribe(subscriber);
57
+
58
+ if (!connection) {
59
+ connection = new tsplus_module_2.SafeSubscriber({
60
+ next: value => dest.next(value),
61
+ error: defect => {
62
+ hasErrored = true;
63
+ cancelReset();
64
+ resetConnection = handleReset(reset, resetOnDefect, defect);
65
+ dest.error(defect);
66
+ },
67
+ complete: () => {
68
+ hasCompleted = true;
69
+ cancelReset();
70
+ resetConnection = handleReset(reset, resetOnComplete);
71
+ dest.complete();
72
+ }
73
+ });
74
+ tsplus_module_3.from(source).subscribe(connection);
75
+ }
76
+ });
77
+ }
78
+
79
+ export function share(options = {}) {
80
+ return fa => share_1(fa, options);
81
+ }
82
+
83
+ function handleReset(reset, on, ...args) {
84
+ if (on === true) {
85
+ reset();
86
+ return null;
87
+ }
88
+
89
+ if (on === false) {
90
+ return null;
91
+ }
92
+
93
+ return tsplus_module_3.take_(on(...args), 1).subscribe({
94
+ next: () => reset()
95
+ });
96
+ }
97
+ //# sourceMappingURL=share.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share.mjs","mappings":";;;;aAUgBA,MAAM;AAHtB;;;;AAGA,iBACEC,EADF,EAEEC,UAAyC,EAF3C,EAE6C;EAE3C,MAAM;IACJC,SAAS,GAAG,MAAM,oBAAIC,OAAJ,EADd;IAEJC,aAAa,GAAG,IAFZ;IAGJC,eAAe,GAAG,IAHd;IAIJC,mBAAmB,GAAG;EAJlB,IAKFL,OALJ;EAOA,IAAIM,UAAU,GAAgC,IAA9C;EACA,IAAIC,eAAe,GAA2B,IAA9C;EACA,IAAIC,OAAO,GAAmC,IAA9C;EACA,IAAIC,QAAQ,GAAO,CAAnB;EACA,IAAIC,YAAY,GAAG,KAAnB;EACA,IAAIC,UAAU,GAAK,KAAnB;;EAEA,MAAMC,WAAW,GAAG,MAAK;IACvBL,eAAe,EAAEM,WAAjB;IACAN,eAAe,GAAG,IAAlB;EACD,CAHD;;EAKA,MAAMO,KAAK,GAAG,MAAK;IACjBF,WAAW;IACXN,UAAU,GAAKE,OAAO,GAAG,IAAzB;IACAE,YAAY,GAAGC,UAAU,GAAG,KAA5B;EACD,CAJD;;EAMA,MAAMI,mBAAmB,GAAG,MAAK;IAC/B,MAAMC,IAAI,GAAGV,UAAb;IACAQ,KAAK;IACLE,IAAI,EAAEH,WAAN;EACD,CAJD;;EAMA,OAAOI,yBAASlB,EAAT,EAAa,CAACmB,MAAD,EAASC,UAAT,KAAuB;IACzCV,QAAQ;;IACR,IAAI,CAACE,UAAD,IAAe,CAACD,YAApB,EAAkC;MAChCE,WAAW;IACZ;;IAED,MAAMQ,IAAI,GAAIZ,OAAO,KAAPA,OAAO,GAAKP,SAAS,EAAd,CAArB;IAEAkB,UAAU,CAACE,GAAX,CAAe,MAAK;MAClBZ,QAAQ;;MACR,IAAIA,QAAQ,KAAK,CAAb,IAAkB,CAACE,UAAnB,IAAiC,CAACD,YAAtC,EAAoD;QAClDH,eAAe,GAAGe,WAAW,CAACP,mBAAD,EAAsBV,mBAAtB,CAA7B;MACD;IACF,CALD;IAOAe,IAAI,CAACG,SAAL,CAAeJ,UAAf;;IAEA,IAAI,CAACb,UAAL,EAAiB;MACfA,UAAU,GAAG,oBAAIkB,cAAJ,CAAmB;QAC9BC,IAAI,EAAGC,KAAD,IAAWN,IAAI,CAACK,IAAL,CAAUC,KAAV,CADa;QAE9BC,KAAK,EAAGC,MAAD,IAAW;UAChBjB,UAAU,GAAG,IAAb;UACAC,WAAW;UACXL,eAAe,GAAGe,WAAW,CAACR,KAAD,EAAQX,aAAR,EAAuByB,MAAvB,CAA7B;UACAR,IAAI,CAACO,KAAL,CAAWC,MAAX;QACD,CAP6B;QAQ9BC,QAAQ,EAAE,MAAK;UACbnB,YAAY,GAAG,IAAf;UACAE,WAAW;UACXL,eAAe,GAAGe,WAAW,CAACR,KAAD,EAAQV,eAAR,CAA7B;UACAgB,IAAI,CAACS,QAAL;QACD;MAb6B,CAAnB,CAAb;MAeAC,qBAAgBZ,MAAhB,EAAwBK,SAAxB,CAAkCjB,UAAlC;IACD;EACF,CAnCM,CAAP;AAoCD;;AAED,OAAM,SAAUyB,KAAV,CACJ/B,UAAyC,EADrC,EACuC;EAE3C,OAAQD,EAAD,IAAQiC,QAAOjC,EAAP,EAAWC,OAAX,CAAf;AACD;;AAED,SAASsB,WAAT,CACER,KADF,EAEEmB,EAFF,EAGE,GAAGC,IAHL,EAGY;EAEV,IAAID,EAAE,KAAK,IAAX,EAAiB;IACfnB,KAAK;IACL,OAAO,IAAP;EACD;;EAED,IAAImB,EAAE,KAAK,KAAX,EAAkB;IAChB,OAAO,IAAP;EACD;;EAED,OAAOH,wBAAE,CAAC,GAAGI,IAAJ,CAAF,EACC,CADD,EAEJX,SAFI,CAEM;IAAEE,IAAI,EAAE,MAAMX,KAAK;EAAnB,CAFN,CAAP;AAGD","names":["share_","fa","options","connector","Subject","resetOnDefect","resetOnComplete","resetOnRefCountZero","connection","resetConnection","subject","refCount","hasCompleted","hasErrored","cancelReset","unsubscribe","reset","resetAndUnsubscribe","conn","tsplus_module_4","source","subscriber","dest","add","handleReset","subscribe","SafeSubscriber","next","value","error","defect","complete","tsplus_module_3","share","share_1","on","args"],"sourceRoot":"","sources":["../../../_src/Observable/api/share.ts"],"sourcesContent":[null]}