@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.
- package/LICENSE +26 -0
- package/_cjs/Action.cjs +15 -16
- package/_cjs/Action.cjs.map +1 -1
- package/_cjs/AnimationFrameAction.cjs +30 -35
- package/_cjs/AnimationFrameAction.cjs.map +1 -1
- package/_cjs/AnimationFrameScheduler.cjs +30 -35
- package/_cjs/AnimationFrameScheduler.cjs.map +1 -1
- package/_cjs/AsyncAction.cjs +73 -93
- package/_cjs/AsyncAction.cjs.map +1 -1
- package/_cjs/AsyncScheduler.cjs +35 -41
- package/_cjs/AsyncScheduler.cjs.map +1 -1
- package/_cjs/BehaviorSubject.cjs +31 -38
- package/_cjs/BehaviorSubject.cjs.map +1 -1
- package/_cjs/Notification.cjs +65 -66
- package/_cjs/Notification.cjs.map +1 -1
- package/_cjs/Observable/api/connect.cjs +23 -25
- package/_cjs/Observable/api/connect.cjs.map +1 -1
- package/_cjs/Observable/api/connectable.cjs +46 -50
- package/_cjs/Observable/api/connectable.cjs.map +1 -1
- package/_cjs/Observable/api/fromCallback.cjs +44 -48
- package/_cjs/Observable/api/fromCallback.cjs.map +1 -1
- package/_cjs/Observable/api/fromEvent.cjs +15 -15
- package/_cjs/Observable/api/fromEvent.cjs.map +1 -1
- package/_cjs/Observable/api/index.cjs +32 -160
- package/_cjs/Observable/api/race.cjs +26 -30
- package/_cjs/Observable/api/race.cjs.map +1 -1
- package/_cjs/Observable/api/raceWith.cjs +14 -15
- package/_cjs/Observable/api/raceWith.cjs.map +1 -1
- package/_cjs/Observable/api/repeatWhen.cjs +54 -57
- package/_cjs/Observable/api/repeatWhen.cjs.map +1 -1
- package/_cjs/Observable/api/retryWhen.cjs +37 -41
- package/_cjs/Observable/api/retryWhen.cjs.map +1 -1
- package/_cjs/Observable/api/share.cjs +73 -83
- package/_cjs/Observable/api/share.cjs.map +1 -1
- package/_cjs/Observable/api/window.cjs +46 -43
- package/_cjs/Observable/api/window.cjs.map +1 -1
- package/_cjs/Observable/api/windowCount.cjs +45 -51
- package/_cjs/Observable/api/windowCount.cjs.map +1 -1
- package/_cjs/Observable/api/windowTime.cjs +73 -74
- package/_cjs/Observable/api/windowTime.cjs.map +1 -1
- package/_cjs/Observable/api/windowToggle.cjs +71 -74
- package/_cjs/Observable/api/windowToggle.cjs.map +1 -1
- package/_cjs/Observable/api/windowWhen.cjs +59 -55
- package/_cjs/Observable/api/windowWhen.cjs.map +1 -1
- package/_cjs/Observable/api.cjs +1858 -2034
- package/_cjs/Observable/api.cjs.map +1 -1
- package/_cjs/Observable/definition.cjs +107 -120
- package/_cjs/Observable/definition.cjs.map +1 -1
- package/_cjs/Observable/dom/animationFrames.cjs +30 -33
- package/_cjs/Observable/dom/animationFrames.cjs.map +1 -1
- package/_cjs/Observable/instances.cjs +0 -2
- package/_cjs/Observable.cjs +180 -215
- package/_cjs/ObservableRef/api.cjs +188 -189
- package/_cjs/ObservableRef/api.cjs.map +1 -1
- package/_cjs/ObservableRef/atomic.cjs +25 -25
- package/_cjs/ObservableRef/atomic.cjs.map +1 -1
- package/_cjs/ObservableRef/definition.cjs +32 -33
- package/_cjs/ObservableRef/definition.cjs.map +1 -1
- package/_cjs/ObservableRef.cjs +17 -39
- package/_cjs/Observer.cjs +0 -2
- package/_cjs/Operator.cjs +58 -62
- package/_cjs/Operator.cjs.map +1 -1
- package/_cjs/Scheduler.cjs +38 -37
- package/_cjs/Scheduler.cjs.map +1 -1
- package/_cjs/Subject.cjs +163 -201
- package/_cjs/Subject.cjs.map +1 -1
- package/_cjs/Subscriber.cjs +151 -170
- package/_cjs/Subscriber.cjs.map +1 -1
- package/_cjs/Subscription.cjs +98 -122
- package/_cjs/Subscription.cjs.map +1 -1
- package/_cjs/chunk.cjs +28 -0
- package/_cjs/config.cjs +11 -12
- package/_cjs/config.cjs.map +1 -1
- package/_cjs/global.cjs +0 -2
- package/_cjs/index.cjs +112 -36
- package/_cjs/internal/animationFrameProvider.cjs +32 -38
- package/_cjs/internal/animationFrameProvider.cjs.map +1 -1
- package/_cjs/internal/args.cjs +12 -12
- package/_cjs/internal/args.cjs.map +1 -1
- package/_cjs/internal/intervalProvider.cjs +15 -22
- package/_cjs/internal/intervalProvider.cjs.map +1 -1
- package/_cjs/internal/performanceTimestampProvider.cjs +10 -11
- package/_cjs/internal/performanceTimestampProvider.cjs.map +1 -1
- package/_cjs/internal/timeoutProvider.cjs +15 -22
- package/_cjs/internal/timeoutProvider.cjs.map +1 -1
- package/_cjs/internal/timestampProvider.cjs +10 -11
- package/_cjs/internal/timestampProvider.cjs.map +1 -1
- package/_cjs/internal/util.cjs +60 -68
- package/_cjs/internal/util.cjs.map +1 -1
- package/_mjs/Action.mjs +12 -8
- package/_mjs/Action.mjs.map +1 -1
- package/_mjs/AnimationFrameAction.mjs +25 -26
- package/_mjs/AnimationFrameAction.mjs.map +1 -1
- package/_mjs/AnimationFrameScheduler.mjs +25 -27
- package/_mjs/AnimationFrameScheduler.mjs.map +1 -1
- package/_mjs/AsyncAction.mjs +69 -84
- package/_mjs/AsyncAction.mjs.map +1 -1
- package/_mjs/AsyncScheduler.mjs +31 -33
- package/_mjs/AsyncScheduler.mjs.map +1 -1
- package/_mjs/BehaviorSubject.mjs +28 -30
- package/_mjs/BehaviorSubject.mjs.map +1 -1
- package/_mjs/Notification.mjs +57 -56
- package/_mjs/Notification.mjs.map +1 -1
- package/_mjs/Observable/api/connect.mjs +17 -17
- package/_mjs/Observable/api/connect.mjs.map +1 -1
- package/_mjs/Observable/api/connectable.mjs +39 -40
- package/_mjs/Observable/api/connectable.mjs.map +1 -1
- package/_mjs/Observable/api/fromCallback.mjs +40 -41
- package/_mjs/Observable/api/fromCallback.mjs.map +1 -1
- package/_mjs/Observable/api/fromEvent.mjs +12 -8
- package/_mjs/Observable/api/fromEvent.mjs.map +1 -1
- package/_mjs/Observable/api/index.mjs +15 -15
- package/_mjs/Observable/api/race.mjs +20 -22
- package/_mjs/Observable/api/race.mjs.map +1 -1
- package/_mjs/Observable/api/raceWith.mjs +11 -8
- package/_mjs/Observable/api/raceWith.mjs.map +1 -1
- package/_mjs/Observable/api/repeatWhen.mjs +48 -49
- package/_mjs/Observable/api/repeatWhen.mjs.map +1 -1
- package/_mjs/Observable/api/retryWhen.mjs +31 -33
- package/_mjs/Observable/api/retryWhen.mjs.map +1 -1
- package/_mjs/Observable/api/share.mjs +65 -74
- package/_mjs/Observable/api/share.mjs.map +1 -1
- package/_mjs/Observable/api/window.mjs +38 -34
- package/_mjs/Observable/api/window.mjs.map +1 -1
- package/_mjs/Observable/api/windowCount.mjs +39 -43
- package/_mjs/Observable/api/windowCount.mjs.map +1 -1
- package/_mjs/Observable/api/windowTime.mjs +63 -64
- package/_mjs/Observable/api/windowTime.mjs.map +1 -1
- package/_mjs/Observable/api/windowToggle.mjs +58 -62
- package/_mjs/Observable/api/windowToggle.mjs.map +1 -1
- package/_mjs/Observable/api/windowWhen.mjs +50 -46
- package/_mjs/Observable/api/windowWhen.mjs.map +1 -1
- package/_mjs/Observable/api.mjs +1822 -2031
- package/_mjs/Observable/api.mjs.map +1 -1
- package/_mjs/Observable/definition.mjs +94 -108
- package/_mjs/Observable/definition.mjs.map +1 -1
- package/_mjs/Observable/dom/animationFrames.mjs +23 -23
- package/_mjs/Observable/dom/animationFrames.mjs.map +1 -1
- package/_mjs/Observable/instances.mjs +0 -2
- package/_mjs/Observable.mjs +20 -25
- package/_mjs/ObservableRef/api.mjs +180 -177
- package/_mjs/ObservableRef/api.mjs.map +1 -1
- package/_mjs/ObservableRef/atomic.mjs +21 -17
- package/_mjs/ObservableRef/atomic.mjs.map +1 -1
- package/_mjs/ObservableRef/definition.mjs +29 -25
- package/_mjs/ObservableRef/definition.mjs.map +1 -1
- package/_mjs/ObservableRef.mjs +4 -5
- package/_mjs/Observer.mjs +0 -2
- package/_mjs/Operator.mjs +50 -51
- package/_mjs/Operator.mjs.map +1 -1
- package/_mjs/Scheduler.mjs +30 -26
- package/_mjs/Scheduler.mjs.map +1 -1
- package/_mjs/Subject.mjs +154 -190
- package/_mjs/Subject.mjs.map +1 -1
- package/_mjs/Subscriber.mjs +136 -156
- package/_mjs/Subscriber.mjs.map +1 -1
- package/_mjs/Subscription.mjs +90 -112
- package/_mjs/Subscription.mjs.map +1 -1
- package/_mjs/config.mjs +10 -6
- package/_mjs/config.mjs.map +1 -1
- package/_mjs/global.mjs +0 -2
- package/_mjs/index.mjs +14 -15
- package/_mjs/internal/animationFrameProvider.mjs +28 -30
- package/_mjs/internal/animationFrameProvider.mjs.map +1 -1
- package/_mjs/internal/args.mjs +9 -5
- package/_mjs/internal/args.mjs.map +1 -1
- package/_mjs/internal/intervalProvider.mjs +14 -16
- package/_mjs/internal/intervalProvider.mjs.map +1 -1
- package/_mjs/internal/performanceTimestampProvider.mjs +9 -5
- package/_mjs/internal/performanceTimestampProvider.mjs.map +1 -1
- package/_mjs/internal/timeoutProvider.mjs +14 -16
- package/_mjs/internal/timeoutProvider.mjs.map +1 -1
- package/_mjs/internal/timestampProvider.mjs +9 -5
- package/_mjs/internal/timestampProvider.mjs.map +1 -1
- package/_mjs/internal/util.mjs +54 -59
- package/_mjs/internal/util.mjs.map +1 -1
- package/_src/Observable/api.ts +1 -1
- package/package.json +6 -2
- package/_cjs/Observable/api/index.cjs.map +0 -1
- package/_cjs/Observable/instances.cjs.map +0 -1
- package/_cjs/Observable.cjs.map +0 -1
- package/_cjs/ObservableRef.cjs.map +0 -1
- package/_cjs/Observer.cjs.map +0 -1
- package/_cjs/global.cjs.map +0 -1
- package/_cjs/index.cjs.map +0 -1
- package/_mjs/Observable/api/index.mjs.map +0 -1
- package/_mjs/Observable/instances.mjs.map +0 -1
- package/_mjs/Observable.mjs.map +0 -1
- package/_mjs/ObservableRef.mjs.map +0 -1
- package/_mjs/Observer.mjs.map +0 -1
- package/_mjs/global.mjs.map +0 -1
- package/_mjs/index.mjs.map +0 -1
package/_cjs/Subject.cjs
CHANGED
|
@@ -1,206 +1,168 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
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
|
package/_cjs/Subject.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subject.cjs","names":["
|
|
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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"}
|