@fncts/observable 0.0.32 → 0.0.33

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 (192) hide show
  1. package/LICENSE +26 -0
  2. package/_cjs/Action.cjs +15 -16
  3. package/_cjs/Action.cjs.map +1 -1
  4. package/_cjs/AnimationFrameAction.cjs +30 -35
  5. package/_cjs/AnimationFrameAction.cjs.map +1 -1
  6. package/_cjs/AnimationFrameScheduler.cjs +30 -35
  7. package/_cjs/AnimationFrameScheduler.cjs.map +1 -1
  8. package/_cjs/AsyncAction.cjs +73 -93
  9. package/_cjs/AsyncAction.cjs.map +1 -1
  10. package/_cjs/AsyncScheduler.cjs +35 -41
  11. package/_cjs/AsyncScheduler.cjs.map +1 -1
  12. package/_cjs/BehaviorSubject.cjs +31 -38
  13. package/_cjs/BehaviorSubject.cjs.map +1 -1
  14. package/_cjs/Notification.cjs +65 -66
  15. package/_cjs/Notification.cjs.map +1 -1
  16. package/_cjs/Observable/api/connect.cjs +23 -25
  17. package/_cjs/Observable/api/connect.cjs.map +1 -1
  18. package/_cjs/Observable/api/connectable.cjs +46 -50
  19. package/_cjs/Observable/api/connectable.cjs.map +1 -1
  20. package/_cjs/Observable/api/fromCallback.cjs +44 -48
  21. package/_cjs/Observable/api/fromCallback.cjs.map +1 -1
  22. package/_cjs/Observable/api/fromEvent.cjs +15 -15
  23. package/_cjs/Observable/api/fromEvent.cjs.map +1 -1
  24. package/_cjs/Observable/api/index.cjs +32 -160
  25. package/_cjs/Observable/api/race.cjs +26 -30
  26. package/_cjs/Observable/api/race.cjs.map +1 -1
  27. package/_cjs/Observable/api/raceWith.cjs +14 -15
  28. package/_cjs/Observable/api/raceWith.cjs.map +1 -1
  29. package/_cjs/Observable/api/repeatWhen.cjs +54 -57
  30. package/_cjs/Observable/api/repeatWhen.cjs.map +1 -1
  31. package/_cjs/Observable/api/retryWhen.cjs +37 -41
  32. package/_cjs/Observable/api/retryWhen.cjs.map +1 -1
  33. package/_cjs/Observable/api/share.cjs +73 -83
  34. package/_cjs/Observable/api/share.cjs.map +1 -1
  35. package/_cjs/Observable/api/window.cjs +46 -43
  36. package/_cjs/Observable/api/window.cjs.map +1 -1
  37. package/_cjs/Observable/api/windowCount.cjs +45 -51
  38. package/_cjs/Observable/api/windowCount.cjs.map +1 -1
  39. package/_cjs/Observable/api/windowTime.cjs +73 -74
  40. package/_cjs/Observable/api/windowTime.cjs.map +1 -1
  41. package/_cjs/Observable/api/windowToggle.cjs +71 -74
  42. package/_cjs/Observable/api/windowToggle.cjs.map +1 -1
  43. package/_cjs/Observable/api/windowWhen.cjs +59 -55
  44. package/_cjs/Observable/api/windowWhen.cjs.map +1 -1
  45. package/_cjs/Observable/api.cjs +1858 -2034
  46. package/_cjs/Observable/api.cjs.map +1 -1
  47. package/_cjs/Observable/definition.cjs +107 -120
  48. package/_cjs/Observable/definition.cjs.map +1 -1
  49. package/_cjs/Observable/dom/animationFrames.cjs +30 -33
  50. package/_cjs/Observable/dom/animationFrames.cjs.map +1 -1
  51. package/_cjs/Observable/instances.cjs +0 -2
  52. package/_cjs/Observable.cjs +180 -215
  53. package/_cjs/ObservableRef/api.cjs +188 -189
  54. package/_cjs/ObservableRef/api.cjs.map +1 -1
  55. package/_cjs/ObservableRef/atomic.cjs +25 -25
  56. package/_cjs/ObservableRef/atomic.cjs.map +1 -1
  57. package/_cjs/ObservableRef/definition.cjs +32 -33
  58. package/_cjs/ObservableRef/definition.cjs.map +1 -1
  59. package/_cjs/ObservableRef.cjs +17 -39
  60. package/_cjs/Observer.cjs +0 -2
  61. package/_cjs/Operator.cjs +58 -62
  62. package/_cjs/Operator.cjs.map +1 -1
  63. package/_cjs/Scheduler.cjs +38 -37
  64. package/_cjs/Scheduler.cjs.map +1 -1
  65. package/_cjs/Subject.cjs +163 -201
  66. package/_cjs/Subject.cjs.map +1 -1
  67. package/_cjs/Subscriber.cjs +151 -170
  68. package/_cjs/Subscriber.cjs.map +1 -1
  69. package/_cjs/Subscription.cjs +98 -122
  70. package/_cjs/Subscription.cjs.map +1 -1
  71. package/_cjs/chunk.cjs +28 -0
  72. package/_cjs/config.cjs +11 -12
  73. package/_cjs/config.cjs.map +1 -1
  74. package/_cjs/global.cjs +0 -2
  75. package/_cjs/index.cjs +112 -36
  76. package/_cjs/internal/animationFrameProvider.cjs +32 -38
  77. package/_cjs/internal/animationFrameProvider.cjs.map +1 -1
  78. package/_cjs/internal/args.cjs +12 -12
  79. package/_cjs/internal/args.cjs.map +1 -1
  80. package/_cjs/internal/intervalProvider.cjs +15 -22
  81. package/_cjs/internal/intervalProvider.cjs.map +1 -1
  82. package/_cjs/internal/performanceTimestampProvider.cjs +10 -11
  83. package/_cjs/internal/performanceTimestampProvider.cjs.map +1 -1
  84. package/_cjs/internal/timeoutProvider.cjs +15 -22
  85. package/_cjs/internal/timeoutProvider.cjs.map +1 -1
  86. package/_cjs/internal/timestampProvider.cjs +10 -11
  87. package/_cjs/internal/timestampProvider.cjs.map +1 -1
  88. package/_cjs/internal/util.cjs +60 -68
  89. package/_cjs/internal/util.cjs.map +1 -1
  90. package/_mjs/Action.mjs +12 -8
  91. package/_mjs/Action.mjs.map +1 -1
  92. package/_mjs/AnimationFrameAction.mjs +25 -26
  93. package/_mjs/AnimationFrameAction.mjs.map +1 -1
  94. package/_mjs/AnimationFrameScheduler.mjs +25 -27
  95. package/_mjs/AnimationFrameScheduler.mjs.map +1 -1
  96. package/_mjs/AsyncAction.mjs +69 -84
  97. package/_mjs/AsyncAction.mjs.map +1 -1
  98. package/_mjs/AsyncScheduler.mjs +31 -33
  99. package/_mjs/AsyncScheduler.mjs.map +1 -1
  100. package/_mjs/BehaviorSubject.mjs +28 -30
  101. package/_mjs/BehaviorSubject.mjs.map +1 -1
  102. package/_mjs/Notification.mjs +57 -56
  103. package/_mjs/Notification.mjs.map +1 -1
  104. package/_mjs/Observable/api/connect.mjs +17 -17
  105. package/_mjs/Observable/api/connect.mjs.map +1 -1
  106. package/_mjs/Observable/api/connectable.mjs +39 -40
  107. package/_mjs/Observable/api/connectable.mjs.map +1 -1
  108. package/_mjs/Observable/api/fromCallback.mjs +40 -41
  109. package/_mjs/Observable/api/fromCallback.mjs.map +1 -1
  110. package/_mjs/Observable/api/fromEvent.mjs +12 -8
  111. package/_mjs/Observable/api/fromEvent.mjs.map +1 -1
  112. package/_mjs/Observable/api/index.mjs +15 -15
  113. package/_mjs/Observable/api/race.mjs +20 -22
  114. package/_mjs/Observable/api/race.mjs.map +1 -1
  115. package/_mjs/Observable/api/raceWith.mjs +11 -8
  116. package/_mjs/Observable/api/raceWith.mjs.map +1 -1
  117. package/_mjs/Observable/api/repeatWhen.mjs +48 -49
  118. package/_mjs/Observable/api/repeatWhen.mjs.map +1 -1
  119. package/_mjs/Observable/api/retryWhen.mjs +31 -33
  120. package/_mjs/Observable/api/retryWhen.mjs.map +1 -1
  121. package/_mjs/Observable/api/share.mjs +65 -74
  122. package/_mjs/Observable/api/share.mjs.map +1 -1
  123. package/_mjs/Observable/api/window.mjs +38 -34
  124. package/_mjs/Observable/api/window.mjs.map +1 -1
  125. package/_mjs/Observable/api/windowCount.mjs +39 -43
  126. package/_mjs/Observable/api/windowCount.mjs.map +1 -1
  127. package/_mjs/Observable/api/windowTime.mjs +63 -64
  128. package/_mjs/Observable/api/windowTime.mjs.map +1 -1
  129. package/_mjs/Observable/api/windowToggle.mjs +58 -62
  130. package/_mjs/Observable/api/windowToggle.mjs.map +1 -1
  131. package/_mjs/Observable/api/windowWhen.mjs +50 -46
  132. package/_mjs/Observable/api/windowWhen.mjs.map +1 -1
  133. package/_mjs/Observable/api.mjs +1822 -2031
  134. package/_mjs/Observable/api.mjs.map +1 -1
  135. package/_mjs/Observable/definition.mjs +94 -108
  136. package/_mjs/Observable/definition.mjs.map +1 -1
  137. package/_mjs/Observable/dom/animationFrames.mjs +23 -23
  138. package/_mjs/Observable/dom/animationFrames.mjs.map +1 -1
  139. package/_mjs/Observable/instances.mjs +0 -2
  140. package/_mjs/Observable.mjs +20 -25
  141. package/_mjs/ObservableRef/api.mjs +180 -177
  142. package/_mjs/ObservableRef/api.mjs.map +1 -1
  143. package/_mjs/ObservableRef/atomic.mjs +21 -17
  144. package/_mjs/ObservableRef/atomic.mjs.map +1 -1
  145. package/_mjs/ObservableRef/definition.mjs +29 -25
  146. package/_mjs/ObservableRef/definition.mjs.map +1 -1
  147. package/_mjs/ObservableRef.mjs +4 -5
  148. package/_mjs/Observer.mjs +0 -2
  149. package/_mjs/Operator.mjs +50 -51
  150. package/_mjs/Operator.mjs.map +1 -1
  151. package/_mjs/Scheduler.mjs +30 -26
  152. package/_mjs/Scheduler.mjs.map +1 -1
  153. package/_mjs/Subject.mjs +154 -190
  154. package/_mjs/Subject.mjs.map +1 -1
  155. package/_mjs/Subscriber.mjs +136 -156
  156. package/_mjs/Subscriber.mjs.map +1 -1
  157. package/_mjs/Subscription.mjs +90 -112
  158. package/_mjs/Subscription.mjs.map +1 -1
  159. package/_mjs/config.mjs +10 -6
  160. package/_mjs/config.mjs.map +1 -1
  161. package/_mjs/global.mjs +0 -2
  162. package/_mjs/index.mjs +14 -15
  163. package/_mjs/internal/animationFrameProvider.mjs +28 -30
  164. package/_mjs/internal/animationFrameProvider.mjs.map +1 -1
  165. package/_mjs/internal/args.mjs +9 -5
  166. package/_mjs/internal/args.mjs.map +1 -1
  167. package/_mjs/internal/intervalProvider.mjs +14 -16
  168. package/_mjs/internal/intervalProvider.mjs.map +1 -1
  169. package/_mjs/internal/performanceTimestampProvider.mjs +9 -5
  170. package/_mjs/internal/performanceTimestampProvider.mjs.map +1 -1
  171. package/_mjs/internal/timeoutProvider.mjs +14 -16
  172. package/_mjs/internal/timeoutProvider.mjs.map +1 -1
  173. package/_mjs/internal/timestampProvider.mjs +9 -5
  174. package/_mjs/internal/timestampProvider.mjs.map +1 -1
  175. package/_mjs/internal/util.mjs +54 -59
  176. package/_mjs/internal/util.mjs.map +1 -1
  177. package/_src/Observable/api.ts +1 -1
  178. package/package.json +6 -2
  179. package/_cjs/Observable/api/index.cjs.map +0 -1
  180. package/_cjs/Observable/instances.cjs.map +0 -1
  181. package/_cjs/Observable.cjs.map +0 -1
  182. package/_cjs/ObservableRef.cjs.map +0 -1
  183. package/_cjs/Observer.cjs.map +0 -1
  184. package/_cjs/global.cjs.map +0 -1
  185. package/_cjs/index.cjs.map +0 -1
  186. package/_mjs/Observable/api/index.mjs.map +0 -1
  187. package/_mjs/Observable/instances.mjs.map +0 -1
  188. package/_mjs/Observable.mjs.map +0 -1
  189. package/_mjs/ObservableRef.mjs.map +0 -1
  190. package/_mjs/Observer.mjs.map +0 -1
  191. package/_mjs/global.mjs.map +0 -1
  192. package/_mjs/index.mjs.map +0 -1
package/_cjs/Subject.cjs CHANGED
@@ -1,206 +1,168 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Subject = exports.AsyncSubject = exports.AnonymousSubject = void 0;
7
- var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/observable/Observable"));
8
- var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/observable/Subscription"));
9
- var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Either/destructors"));
10
- var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Either/constructors"));
11
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_chunk = require("./chunk.cjs");
3
+ let _fncts_observable_Observable = require("@fncts/observable/Observable");
4
+ _fncts_observable_Observable = require_chunk.__toESM(_fncts_observable_Observable, 1);
5
+ let _fncts_observable_Subscription = require("@fncts/observable/Subscription");
6
+ _fncts_observable_Subscription = require_chunk.__toESM(_fncts_observable_Subscription, 1);
7
+ let _fncts_base_data_Either_destructors = require("@fncts/base/data/Either/destructors");
8
+ _fncts_base_data_Either_destructors = require_chunk.__toESM(_fncts_base_data_Either_destructors, 1);
9
+ let _fncts_base_data_Either_constructors = require("@fncts/base/data/Either/constructors");
10
+ _fncts_base_data_Either_constructors = require_chunk.__toESM(_fncts_base_data_Either_constructors, 1);
11
+ //#region build/esm/Subject.js
12
12
  const fileName_1 = "(@fncts/observable) src/Subject.ts";
13
13
  /**
14
- * A Subject is a special type of Observable that allows values to be
15
- * multicasted to many Observers. Subjects are like EventEmitters.
16
- *
17
- * Every Subject is an Observable and an Observer. You can subscribe to a
18
- * Subject, and you can call next to feed values as well as error and complete.
19
- */
20
- class Subject extends tsplus_module_1.Observable {
21
- _closed = false;
22
- currentObservers = /*#__PURE__*/new Map();
23
- observersCount = 0;
24
- observerSnapshot;
25
- hasError = false;
26
- thrownError = null;
27
- constructor() {
28
- super();
29
- }
30
- get closed() {
31
- return this._closed;
32
- }
33
- get observers() {
34
- return this.observerSnapshot ??= Array.from(this.currentObservers.values());
35
- }
36
- next(value) {
37
- if (!this._closed) {
38
- const {
39
- observers
40
- } = this;
41
- const len = observers.length;
42
- for (let i = 0; i < len; i++) {
43
- observers[i].next(value);
44
- }
45
- }
46
- }
47
- error(err) {
48
- if (!this._closed) {
49
- this.hasError = this._closed = true;
50
- this.thrownError = err;
51
- const {
52
- observers
53
- } = this;
54
- const len = observers.length;
55
- for (let i = 0; i < len; i++) {
56
- observers[i].error(err);
57
- }
58
- this.clearObservers();
59
- }
60
- }
61
- complete() {
62
- if (!this._closed) {
63
- this._closed = true;
64
- const {
65
- observers
66
- } = this;
67
- const len = observers.length;
68
- for (let i = 0; i < len; i++) {
69
- observers[i].complete();
70
- }
71
- this.clearObservers();
72
- }
73
- }
74
- unsubscribe() {
75
- this._closed = true;
76
- this.clearObservers();
77
- }
78
- get observed() {
79
- return this.currentObservers.size > 0;
80
- }
81
- throwIfClosed() {
82
- if (this._closed) {
83
- throw new Error("Object Unsubscribed");
84
- }
85
- }
86
- clearObservers() {
87
- this.currentObservers.clear();
88
- this.observerSnapshot = undefined;
89
- }
90
- trySubscribe(subscriber, environment) {
91
- this.throwIfClosed();
92
- return super.trySubscribe(subscriber, environment);
93
- }
94
- subscribeInternal(subscriber) {
95
- this.checkFinalizedStatuses(subscriber);
96
- return this.innerSubscribe(subscriber);
97
- }
98
- innerSubscribe(subscriber) {
99
- const {
100
- hasError,
101
- _closed: closed
102
- } = this;
103
- if (hasError || closed) {
104
- return tsplus_module_2.EMPTY_SUBSCRIPTION;
105
- }
106
- const {
107
- currentObservers
108
- } = this;
109
- const observerId = this.observersCount++;
110
- currentObservers.set(observerId, subscriber);
111
- this.observerSnapshot = undefined;
112
- subscriber.add(() => {
113
- currentObservers.delete(observerId);
114
- this.observerSnapshot = undefined;
115
- });
116
- return subscriber;
117
- }
118
- checkFinalizedStatuses(subscriber) {
119
- const {
120
- hasError,
121
- thrownError,
122
- _closed: closed
123
- } = this;
124
- if (hasError) {
125
- subscriber.error(thrownError);
126
- } else if (closed) {
127
- subscriber.complete();
128
- }
129
- }
130
- asObservable() {
131
- const observable = new tsplus_module_1.Observable();
132
- observable.source = this;
133
- return observable;
134
- }
135
- }
136
- exports.Subject = Subject;
137
- class AnonymousSubject extends Subject {
138
- destination;
139
- constructor(destination, source) {
140
- super();
141
- this.destination = destination;
142
- this.source = source;
143
- }
144
- next(value) {
145
- this.destination?.next?.(value);
146
- }
147
- error(err) {
148
- this.destination?.error?.(err);
149
- }
150
- complete() {
151
- this.destination?.complete?.();
152
- }
153
- /** @internal */
154
- subscribeInternal(subscriber) {
155
- return this.source?.provideEnvironment(this.environment).subscribe(subscriber) ?? tsplus_module_2.EMPTY_SUBSCRIPTION;
156
- }
157
- }
14
+ * A Subject is a special type of Observable that allows values to be
15
+ * multicasted to many Observers. Subjects are like EventEmitters.
16
+ *
17
+ * Every Subject is an Observable and an Observer. You can subscribe to a
18
+ * Subject, and you can call next to feed values as well as error and complete.
19
+ */
20
+ var Subject = class extends _fncts_observable_Observable.Observable {
21
+ _closed = false;
22
+ currentObservers = /* @__PURE__ */ new Map();
23
+ observersCount = 0;
24
+ observerSnapshot;
25
+ hasError = false;
26
+ thrownError = null;
27
+ constructor() {
28
+ super();
29
+ }
30
+ get closed() {
31
+ return this._closed;
32
+ }
33
+ get observers() {
34
+ return this.observerSnapshot ??= Array.from(this.currentObservers.values());
35
+ }
36
+ next(value) {
37
+ if (!this._closed) {
38
+ const { observers } = this;
39
+ const len = observers.length;
40
+ for (let i = 0; i < len; i++) observers[i].next(value);
41
+ }
42
+ }
43
+ error(err) {
44
+ if (!this._closed) {
45
+ this.hasError = this._closed = true;
46
+ this.thrownError = err;
47
+ const { observers } = this;
48
+ const len = observers.length;
49
+ for (let i = 0; i < len; i++) observers[i].error(err);
50
+ this.clearObservers();
51
+ }
52
+ }
53
+ complete() {
54
+ if (!this._closed) {
55
+ this._closed = true;
56
+ const { observers } = this;
57
+ const len = observers.length;
58
+ for (let i = 0; i < len; i++) observers[i].complete();
59
+ this.clearObservers();
60
+ }
61
+ }
62
+ unsubscribe() {
63
+ this._closed = true;
64
+ this.clearObservers();
65
+ }
66
+ get observed() {
67
+ return this.currentObservers.size > 0;
68
+ }
69
+ throwIfClosed() {
70
+ if (this._closed) throw new Error("Object Unsubscribed");
71
+ }
72
+ clearObservers() {
73
+ this.currentObservers.clear();
74
+ this.observerSnapshot = void 0;
75
+ }
76
+ trySubscribe(subscriber, environment) {
77
+ this.throwIfClosed();
78
+ return super.trySubscribe(subscriber, environment);
79
+ }
80
+ subscribeInternal(subscriber) {
81
+ this.checkFinalizedStatuses(subscriber);
82
+ return this.innerSubscribe(subscriber);
83
+ }
84
+ innerSubscribe(subscriber) {
85
+ const { hasError, _closed: closed } = this;
86
+ if (hasError || closed) return _fncts_observable_Subscription.EMPTY_SUBSCRIPTION;
87
+ const { currentObservers } = this;
88
+ const observerId = this.observersCount++;
89
+ currentObservers.set(observerId, subscriber);
90
+ this.observerSnapshot = void 0;
91
+ subscriber.add(() => {
92
+ currentObservers.delete(observerId);
93
+ this.observerSnapshot = void 0;
94
+ });
95
+ return subscriber;
96
+ }
97
+ checkFinalizedStatuses(subscriber) {
98
+ const { hasError, thrownError, _closed: closed } = this;
99
+ if (hasError) subscriber.error(thrownError);
100
+ else if (closed) subscriber.complete();
101
+ }
102
+ asObservable() {
103
+ const observable = new _fncts_observable_Observable.Observable();
104
+ observable.source = this;
105
+ return observable;
106
+ }
107
+ };
108
+ var AnonymousSubject = class extends Subject {
109
+ destination;
110
+ constructor(destination, source) {
111
+ super();
112
+ this.destination = destination;
113
+ this.source = source;
114
+ }
115
+ next(value) {
116
+ this.destination?.next?.(value);
117
+ }
118
+ error(err) {
119
+ this.destination?.error?.(err);
120
+ }
121
+ complete() {
122
+ this.destination?.complete?.();
123
+ }
124
+ /** @internal */
125
+ subscribeInternal(subscriber) {
126
+ return this.source?.provideEnvironment(this.environment).subscribe(subscriber) ?? _fncts_observable_Subscription.EMPTY_SUBSCRIPTION;
127
+ }
128
+ };
129
+ var AsyncSubject = class extends Subject {
130
+ value = null;
131
+ hasValue = false;
132
+ isComplete = false;
133
+ /** @internal */
134
+ checkFinalizedStatuses(subscriber) {
135
+ const { hasError, hasValue, value, thrownError, _closed: closed, isComplete } = this;
136
+ if (hasError) subscriber.error(thrownError);
137
+ else if (closed || isComplete) {
138
+ hasValue && _fncts_base_data_Either_destructors.match((e) => subscriber.error(e), (a) => subscriber.next(a))(value);
139
+ subscriber.complete();
140
+ }
141
+ }
142
+ next(value) {
143
+ if (!this._closed) {
144
+ this.value = _fncts_base_data_Either_constructors.right(value, fileName_1 + ":177:35");
145
+ this.hasValue = true;
146
+ }
147
+ }
148
+ error(err) {
149
+ if (!this._closed) {
150
+ this.value = _fncts_base_data_Either_constructors.left(err, fileName_1 + ":184:34");
151
+ this.hasValue = true;
152
+ }
153
+ }
154
+ complete() {
155
+ const { hasValue, value, isComplete } = this;
156
+ if (!isComplete) {
157
+ this.isComplete = true;
158
+ hasValue && _fncts_base_data_Either_destructors.match((e) => super.error(e), (a) => super.next(a))(value);
159
+ super.complete();
160
+ }
161
+ }
162
+ };
163
+ //#endregion
158
164
  exports.AnonymousSubject = AnonymousSubject;
159
- class AsyncSubject extends Subject {
160
- value = null;
161
- hasValue = false;
162
- isComplete = false;
163
- /** @internal */
164
- checkFinalizedStatuses(subscriber) {
165
- const {
166
- hasError,
167
- hasValue,
168
- value,
169
- thrownError,
170
- _closed: closed,
171
- isComplete
172
- } = this;
173
- if (hasError) {
174
- subscriber.error(thrownError);
175
- } else if (closed || isComplete) {
176
- hasValue && tsplus_module_3.match(e => subscriber.error(e), a => subscriber.next(a))(value);
177
- subscriber.complete();
178
- }
179
- }
180
- next(value) {
181
- if (!this._closed) {
182
- this.value = tsplus_module_4.right(value, fileName_1 + ":177:35");
183
- this.hasValue = true;
184
- }
185
- }
186
- error(err) {
187
- if (!this._closed) {
188
- this.value = tsplus_module_4.left(err, fileName_1 + ":184:34");
189
- this.hasValue = true;
190
- }
191
- }
192
- complete() {
193
- const {
194
- hasValue,
195
- value,
196
- isComplete
197
- } = this;
198
- if (!isComplete) {
199
- this.isComplete = true;
200
- hasValue && tsplus_module_3.match(e => super.error(e), a => super.next(a))(value);
201
- super.complete();
202
- }
203
- }
204
- }
205
165
  exports.AsyncSubject = AsyncSubject;
166
+ exports.Subject = Subject;
167
+
206
168
  //# sourceMappingURL=Subject.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Subject.cjs","names":["Subject","tsplus_module_1","Observable","_closed","currentObservers","Map","observersCount","observerSnapshot","hasError","thrownError","constructor","closed","observers","Array","from","values","next","value","len","length","i","error","err","clearObservers","complete","unsubscribe","observed","size","throwIfClosed","Error","clear","undefined","trySubscribe","subscriber","environment","subscribeInternal","checkFinalizedStatuses","innerSubscribe","tsplus_module_2","EMPTY_SUBSCRIPTION","observerId","set","add","delete","asObservable","observable","source","exports","AnonymousSubject","destination","provideEnvironment","subscribe","AsyncSubject","hasValue","isComplete","tsplus_module_3","match","e","a","tsplus_module_4","right","fileName_1","left"],"sources":["../_src/Subject.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Subject.cjs","names":["tsplus_module_1","tsplus_module_2","tsplus_module_3","tsplus_module_4"],"sources":["../esm/Subject.js"],"sourcesContent":["const fileName_1 = \"(@fncts/observable) src/Subject.ts\";\nimport * as tsplus_module_1 from \"@fncts/observable/Observable\";\nimport * as tsplus_module_2 from \"@fncts/observable/Subscription\";\nimport * as tsplus_module_3 from \"@fncts/base/data/Either/destructors\";\nimport * as tsplus_module_4 from \"@fncts/base/data/Either/constructors\";\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject extends tsplus_module_1.Observable {\n _closed = false;\n currentObservers = new Map();\n observersCount = 0;\n observerSnapshot;\n hasError = false;\n thrownError = null;\n constructor() {\n super();\n }\n get closed() {\n return this._closed;\n }\n get observers() {\n return (this.observerSnapshot ??= Array.from(this.currentObservers.values()));\n }\n next(value) {\n if (!this._closed) {\n const { observers } = this;\n const len = observers.length;\n for (let i = 0; i < len; i++) {\n observers[i].next(value);\n }\n }\n }\n error(err) {\n if (!this._closed) {\n this.hasError = this._closed = true;\n this.thrownError = err;\n const { observers } = this;\n const len = observers.length;\n for (let i = 0; i < len; i++) {\n observers[i].error(err);\n }\n this.clearObservers();\n }\n }\n complete() {\n if (!this._closed) {\n this._closed = true;\n const { observers } = this;\n const len = observers.length;\n for (let i = 0; i < len; i++) {\n observers[i].complete();\n }\n this.clearObservers();\n }\n }\n unsubscribe() {\n this._closed = true;\n this.clearObservers();\n }\n get observed() {\n return this.currentObservers.size > 0;\n }\n throwIfClosed() {\n if (this._closed) {\n throw new Error(\"Object Unsubscribed\");\n }\n }\n clearObservers() {\n this.currentObservers.clear();\n this.observerSnapshot = undefined;\n }\n trySubscribe(subscriber, environment) {\n this.throwIfClosed();\n return super.trySubscribe(subscriber, environment);\n }\n subscribeInternal(subscriber) {\n this.checkFinalizedStatuses(subscriber);\n return this.innerSubscribe(subscriber);\n }\n innerSubscribe(subscriber) {\n const { hasError, _closed: closed } = this;\n if (hasError || closed) {\n return tsplus_module_2.EMPTY_SUBSCRIPTION;\n }\n const { currentObservers } = this;\n const observerId = this.observersCount++;\n currentObservers.set(observerId, subscriber);\n this.observerSnapshot = undefined;\n subscriber.add(() => {\n currentObservers.delete(observerId);\n this.observerSnapshot = undefined;\n });\n return subscriber;\n }\n checkFinalizedStatuses(subscriber) {\n const { hasError, thrownError, _closed: closed } = this;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (closed) {\n subscriber.complete();\n }\n }\n asObservable() {\n const observable = new tsplus_module_1.Observable();\n observable.source = this;\n return observable;\n }\n}\nexport class AnonymousSubject extends Subject {\n destination;\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n this.destination?.next?.(value);\n }\n error(err) {\n this.destination?.error?.(err);\n }\n complete() {\n this.destination?.complete?.();\n }\n /** @internal */\n subscribeInternal(subscriber) {\n return this.source?.provideEnvironment(this.environment).subscribe(subscriber) ?? tsplus_module_2.EMPTY_SUBSCRIPTION;\n }\n}\nexport class AsyncSubject extends Subject {\n value = null;\n hasValue = false;\n isComplete = false;\n /** @internal */\n checkFinalizedStatuses(subscriber) {\n const { hasError, hasValue, value, thrownError, _closed: closed, isComplete } = this;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (closed || isComplete) {\n hasValue &&\n tsplus_module_3.match((e) => subscriber.error(e), (a) => subscriber.next(a))(value);\n subscriber.complete();\n }\n }\n next(value) {\n if (!this._closed) {\n this.value = tsplus_module_4.right(value, fileName_1 + \":177:35\");\n this.hasValue = true;\n }\n }\n error(err) {\n if (!this._closed) {\n this.value = tsplus_module_4.left(err, fileName_1 + \":184:34\");\n this.hasValue = true;\n }\n }\n complete() {\n const { hasValue, value, isComplete } = this;\n if (!isComplete) {\n this.isComplete = true;\n hasValue &&\n tsplus_module_3.match((e) => super.error(e), (a) => super.next(a))(value);\n super.complete();\n }\n }\n}\n//# sourceMappingURL=Subject.js.map"],"mappings":"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"}