@fncts/observable 0.0.26 → 0.0.27
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/Observable/api/raceWith.d.ts +0 -1
- package/Observable/api/repeatWhen.d.ts +1 -1
- package/Observable/api/share.d.ts +1 -1
- package/Observable/api.d.ts +4 -4
- package/Observable/definition.d.ts +1 -4
- package/Observable.d.ts +16 -16
- package/ObservableRef.d.ts +2 -2
- package/Operator.d.ts +3 -3
- package/Subject.d.ts +14 -5
- package/Subscriber.d.ts +23 -8
- package/Subscription.d.ts +2 -2
- package/_cjs/Action.cjs +1 -1
- package/_cjs/AnimationFrameAction.cjs +2 -2
- package/_cjs/AnimationFrameScheduler.cjs +2 -2
- package/_cjs/AsyncAction.cjs +4 -4
- package/_cjs/AsyncAction.cjs.map +1 -1
- package/_cjs/AsyncScheduler.cjs +2 -2
- package/_cjs/BehaviorSubject.cjs +2 -2
- package/_cjs/BehaviorSubject.cjs.map +1 -1
- package/_cjs/Observable/api/connect.cjs +7 -7
- package/_cjs/Observable/api/connect.cjs.map +1 -1
- package/_cjs/Observable/api/connectable.cjs +4 -4
- package/_cjs/Observable/api/connectable.cjs.map +1 -1
- package/_cjs/Observable/api/fromCallback.cjs +2 -2
- package/_cjs/Observable/api/fromEvent.cjs +1 -1
- package/_cjs/Observable/api/race.cjs +4 -4
- package/_cjs/Observable/api/race.cjs.map +1 -1
- package/_cjs/Observable/api/raceWith.cjs +3 -4
- package/_cjs/Observable/api/raceWith.cjs.map +1 -1
- package/_cjs/Observable/api/repeatWhen.cjs +9 -8
- package/_cjs/Observable/api/repeatWhen.cjs.map +1 -1
- package/_cjs/Observable/api/retryWhen.cjs +9 -8
- package/_cjs/Observable/api/retryWhen.cjs.map +1 -1
- package/_cjs/Observable/api/share.cjs +9 -9
- package/_cjs/Observable/api/share.cjs.map +1 -1
- package/_cjs/Observable/api/window.cjs +12 -11
- package/_cjs/Observable/api/window.cjs.map +1 -1
- package/_cjs/Observable/api/windowCount.cjs +12 -10
- package/_cjs/Observable/api/windowCount.cjs.map +1 -1
- package/_cjs/Observable/api/windowTime.cjs +12 -11
- package/_cjs/Observable/api/windowTime.cjs.map +1 -1
- package/_cjs/Observable/api/windowToggle.cjs +26 -24
- package/_cjs/Observable/api/windowToggle.cjs.map +1 -1
- package/_cjs/Observable/api/windowWhen.cjs +17 -15
- package/_cjs/Observable/api/windowWhen.cjs.map +1 -1
- package/_cjs/Observable/api.cjs +325 -311
- package/_cjs/Observable/api.cjs.map +1 -1
- package/_cjs/Observable/definition.cjs +7 -14
- package/_cjs/Observable/definition.cjs.map +1 -1
- package/_cjs/Observable/dom/animationFrames.cjs +3 -3
- package/_cjs/Observable/dom/animationFrames.cjs.map +1 -1
- package/_cjs/Observable.cjs +64 -64
- package/_cjs/Observable.cjs.map +1 -1
- package/_cjs/ObservableRef/api.cjs +2 -2
- package/_cjs/ObservableRef/atomic.cjs +2 -2
- package/_cjs/ObservableRef/definition.cjs +1 -1
- package/_cjs/ObservableRef.cjs +8 -8
- package/_cjs/ObservableRef.cjs.map +1 -1
- package/_cjs/Operator.cjs +9 -14
- package/_cjs/Operator.cjs.map +1 -1
- package/_cjs/Scheduler.cjs +2 -2
- package/_cjs/Subject.cjs +69 -43
- package/_cjs/Subject.cjs.map +1 -1
- package/_cjs/Subscriber.cjs +122 -70
- package/_cjs/Subscriber.cjs.map +1 -1
- package/_cjs/Subscription.cjs +7 -7
- package/_cjs/Subscription.cjs.map +1 -1
- package/_cjs/config.cjs +15 -0
- package/_cjs/config.cjs.map +1 -0
- package/_cjs/index.cjs +13 -13
- package/_cjs/internal/animationFrameProvider.cjs +1 -1
- package/_cjs/internal/args.cjs +1 -1
- package/_cjs/internal/util.cjs +2 -2
- package/_mjs/AsyncAction.mjs +3 -3
- package/_mjs/AsyncAction.mjs.map +1 -1
- package/_mjs/BehaviorSubject.mjs +1 -1
- package/_mjs/BehaviorSubject.mjs.map +1 -1
- package/_mjs/Observable/api/connect.mjs +6 -6
- package/_mjs/Observable/api/connect.mjs.map +1 -1
- package/_mjs/Observable/api/connectable.mjs +1 -1
- package/_mjs/Observable/api/connectable.mjs.map +1 -1
- package/_mjs/Observable/api/race.mjs +1 -1
- package/_mjs/Observable/api/race.mjs.map +1 -1
- package/_mjs/Observable/api/raceWith.mjs +3 -4
- package/_mjs/Observable/api/raceWith.mjs.map +1 -1
- package/_mjs/Observable/api/repeatWhen.mjs +9 -8
- package/_mjs/Observable/api/repeatWhen.mjs.map +1 -1
- package/_mjs/Observable/api/retryWhen.mjs +9 -8
- package/_mjs/Observable/api/retryWhen.mjs.map +1 -1
- package/_mjs/Observable/api/share.mjs +8 -8
- package/_mjs/Observable/api/share.mjs.map +1 -1
- package/_mjs/Observable/api/window.mjs +12 -11
- package/_mjs/Observable/api/window.mjs.map +1 -1
- package/_mjs/Observable/api/windowCount.mjs +12 -10
- package/_mjs/Observable/api/windowCount.mjs.map +1 -1
- package/_mjs/Observable/api/windowTime.mjs +11 -10
- package/_mjs/Observable/api/windowTime.mjs.map +1 -1
- package/_mjs/Observable/api/windowToggle.mjs +25 -23
- package/_mjs/Observable/api/windowToggle.mjs.map +1 -1
- package/_mjs/Observable/api/windowWhen.mjs +17 -15
- package/_mjs/Observable/api/windowWhen.mjs.map +1 -1
- package/_mjs/Observable/api.mjs +304 -290
- package/_mjs/Observable/api.mjs.map +1 -1
- package/_mjs/Observable/definition.mjs +2 -9
- package/_mjs/Observable/definition.mjs.map +1 -1
- package/_mjs/Observable/dom/animationFrames.mjs +1 -1
- package/_mjs/Observable/dom/animationFrames.mjs.map +1 -1
- package/_mjs/Observable.mjs +16 -18
- package/_mjs/Observable.mjs.map +1 -1
- package/_mjs/ObservableRef.mjs +2 -3
- package/_mjs/ObservableRef.mjs.map +1 -1
- package/_mjs/Operator.mjs +6 -11
- package/_mjs/Operator.mjs.map +1 -1
- package/_mjs/Subject.mjs +65 -39
- package/_mjs/Subject.mjs.map +1 -1
- package/_mjs/Subscriber.mjs +119 -67
- package/_mjs/Subscriber.mjs.map +1 -1
- package/_mjs/Subscription.mjs +6 -6
- package/_mjs/Subscription.mjs.map +1 -1
- package/_mjs/config.mjs +9 -0
- package/_mjs/config.mjs.map +1 -0
- package/_src/AsyncAction.ts +3 -3
- package/_src/BehaviorSubject.ts +1 -1
- package/_src/Observable/api/connect.ts +2 -2
- package/_src/Observable/api/connectable.ts +1 -1
- package/_src/Observable/api/race.ts +1 -1
- package/_src/Observable/api/raceWith.ts +2 -5
- package/_src/Observable/api/repeatWhen.ts +4 -4
- package/_src/Observable/api/retryWhen.ts +3 -3
- package/_src/Observable/api/share.ts +6 -6
- package/_src/Observable/api/window.ts +3 -3
- package/_src/Observable/api/windowCount.ts +30 -33
- package/_src/Observable/api/windowTime.ts +4 -4
- package/_src/Observable/api/windowToggle.ts +19 -21
- package/_src/Observable/api/windowWhen.ts +10 -13
- package/_src/Observable/api.ts +358 -363
- package/_src/Observable/definition.ts +2 -17
- package/_src/Observable/dom/animationFrames.ts +1 -1
- package/_src/Observable.ts +17 -18
- package/_src/ObservableRef.ts +2 -3
- package/_src/Operator.ts +9 -21
- package/_src/Subject.ts +66 -39
- package/_src/Subscriber.ts +134 -59
- package/_src/Subscription.ts +8 -8
- package/_src/config.ts +40 -0
- package/_src/global.ts +1 -1
- package/config.d.ts +36 -0
- package/global.d.ts +1 -1
- package/package.json +2 -2
package/_mjs/Subject.mjs
CHANGED
|
@@ -3,93 +3,119 @@ import * as tsplus_module_1 from "@fncts/observable/Observable";
|
|
|
3
3
|
import * as tsplus_module_2 from "@fncts/observable/Subscription";
|
|
4
4
|
import * as tsplus_module_3 from "@fncts/base/data/Either/destructors";
|
|
5
5
|
import * as tsplus_module_4 from "@fncts/base/data/Either/constructors";
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* A Subject is a special type of Observable that allows values to be
|
|
8
|
+
* multicasted to many Observers. Subjects are like EventEmitters.
|
|
9
|
+
*
|
|
10
|
+
* Every Subject is an Observable and an Observer. You can subscribe to a
|
|
11
|
+
* Subject, and you can call next to feed values as well as error and complete.
|
|
12
|
+
*/
|
|
7
13
|
export class Subject extends tsplus_module_1.Observable {
|
|
8
14
|
constructor() {
|
|
9
15
|
super();
|
|
10
|
-
this.
|
|
11
|
-
this.
|
|
12
|
-
this.
|
|
16
|
+
this._closed = false;
|
|
17
|
+
this.currentObservers = new Map();
|
|
18
|
+
this.observersCount = 0;
|
|
13
19
|
this.hasError = false;
|
|
14
20
|
this.thrownError = null;
|
|
15
21
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
22
|
+
get closed() {
|
|
23
|
+
return this._closed;
|
|
24
|
+
}
|
|
25
|
+
get observers() {
|
|
26
|
+
return this.observerSnapshot ?? (this.observerSnapshot = Array.from(this.currentObservers.values()));
|
|
20
27
|
}
|
|
21
28
|
next(value) {
|
|
22
|
-
this.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
29
|
+
if (!this._closed) {
|
|
30
|
+
const {
|
|
31
|
+
observers
|
|
32
|
+
} = this;
|
|
33
|
+
const len = observers.length;
|
|
34
|
+
for (let i = 0; i < len; i++) {
|
|
35
|
+
observers[i].next(value);
|
|
27
36
|
}
|
|
28
37
|
}
|
|
29
38
|
}
|
|
30
39
|
error(err) {
|
|
31
|
-
this.
|
|
32
|
-
|
|
33
|
-
this.hasError = this.isStopped = true;
|
|
40
|
+
if (!this._closed) {
|
|
41
|
+
this.hasError = this._closed = true;
|
|
34
42
|
this.thrownError = err;
|
|
35
43
|
const {
|
|
36
44
|
observers
|
|
37
45
|
} = this;
|
|
38
|
-
|
|
39
|
-
|
|
46
|
+
const len = observers.length;
|
|
47
|
+
for (let i = 0; i < len; i++) {
|
|
48
|
+
observers[i].error(err);
|
|
40
49
|
}
|
|
50
|
+
this.clearObservers();
|
|
41
51
|
}
|
|
42
52
|
}
|
|
43
53
|
complete() {
|
|
44
|
-
this.
|
|
45
|
-
|
|
46
|
-
this.isStopped = true;
|
|
54
|
+
if (!this._closed) {
|
|
55
|
+
this._closed = true;
|
|
47
56
|
const {
|
|
48
57
|
observers
|
|
49
58
|
} = this;
|
|
50
|
-
|
|
51
|
-
|
|
59
|
+
const len = observers.length;
|
|
60
|
+
for (let i = 0; i < len; i++) {
|
|
61
|
+
observers[i].complete();
|
|
52
62
|
}
|
|
63
|
+
this.clearObservers();
|
|
53
64
|
}
|
|
54
65
|
}
|
|
55
66
|
unsubscribe() {
|
|
56
|
-
this.
|
|
57
|
-
this.
|
|
67
|
+
this._closed = true;
|
|
68
|
+
this.clearObservers();
|
|
58
69
|
}
|
|
59
70
|
get observed() {
|
|
60
|
-
return this.
|
|
71
|
+
return this.currentObservers.size > 0;
|
|
61
72
|
}
|
|
62
73
|
throwIfClosed() {
|
|
63
|
-
if (this.
|
|
74
|
+
if (this._closed) {
|
|
64
75
|
throw new Error("Object Unsubscribed");
|
|
65
76
|
}
|
|
66
77
|
}
|
|
78
|
+
clearObservers() {
|
|
79
|
+
this.currentObservers.clear();
|
|
80
|
+
this.observerSnapshot = undefined;
|
|
81
|
+
}
|
|
67
82
|
trySubscribe(subscriber, environment) {
|
|
68
83
|
this.throwIfClosed();
|
|
69
84
|
return super.trySubscribe(subscriber, environment);
|
|
70
85
|
}
|
|
71
86
|
subscribeInternal(subscriber) {
|
|
72
|
-
this.throwIfClosed();
|
|
73
87
|
this.checkFinalizedStatuses(subscriber);
|
|
74
88
|
return this.innerSubscribe(subscriber);
|
|
75
89
|
}
|
|
76
90
|
innerSubscribe(subscriber) {
|
|
77
91
|
const {
|
|
78
92
|
hasError,
|
|
79
|
-
|
|
80
|
-
|
|
93
|
+
_closed: closed
|
|
94
|
+
} = this;
|
|
95
|
+
if (hasError || closed) {
|
|
96
|
+
return tsplus_module_2.EMPTY_SUBSCRIPTION;
|
|
97
|
+
}
|
|
98
|
+
const {
|
|
99
|
+
currentObservers
|
|
81
100
|
} = this;
|
|
82
|
-
|
|
101
|
+
const observerId = this.observersCount++;
|
|
102
|
+
currentObservers.set(observerId, subscriber);
|
|
103
|
+
this.observerSnapshot = undefined;
|
|
104
|
+
subscriber.add(() => {
|
|
105
|
+
currentObservers.delete(observerId);
|
|
106
|
+
this.observerSnapshot = undefined;
|
|
107
|
+
});
|
|
108
|
+
return subscriber;
|
|
83
109
|
}
|
|
84
110
|
checkFinalizedStatuses(subscriber) {
|
|
85
111
|
const {
|
|
86
112
|
hasError,
|
|
87
113
|
thrownError,
|
|
88
|
-
|
|
114
|
+
_closed: closed
|
|
89
115
|
} = this;
|
|
90
116
|
if (hasError) {
|
|
91
117
|
subscriber.error(thrownError);
|
|
92
|
-
} else if (
|
|
118
|
+
} else if (closed) {
|
|
93
119
|
subscriber.complete();
|
|
94
120
|
}
|
|
95
121
|
}
|
|
@@ -133,25 +159,25 @@ export class AsyncSubject extends Subject {
|
|
|
133
159
|
hasValue,
|
|
134
160
|
value,
|
|
135
161
|
thrownError,
|
|
136
|
-
|
|
162
|
+
_closed: closed,
|
|
137
163
|
isComplete
|
|
138
164
|
} = this;
|
|
139
165
|
if (hasError) {
|
|
140
166
|
subscriber.error(thrownError);
|
|
141
|
-
} else if (
|
|
167
|
+
} else if (closed || isComplete) {
|
|
142
168
|
hasValue && tsplus_module_3.match(e => subscriber.error(e), a => subscriber.next(a))(value);
|
|
143
169
|
subscriber.complete();
|
|
144
170
|
}
|
|
145
171
|
}
|
|
146
172
|
next(value) {
|
|
147
|
-
if (!this.
|
|
148
|
-
this.value = tsplus_module_4.right(value, fileName_1 + ":
|
|
173
|
+
if (!this._closed) {
|
|
174
|
+
this.value = tsplus_module_4.right(value, fileName_1 + ":177:35");
|
|
149
175
|
this.hasValue = true;
|
|
150
176
|
}
|
|
151
177
|
}
|
|
152
178
|
error(err) {
|
|
153
|
-
if (!this.
|
|
154
|
-
this.value = tsplus_module_4.left(err, fileName_1 + ":
|
|
179
|
+
if (!this._closed) {
|
|
180
|
+
this.value = tsplus_module_4.left(err, fileName_1 + ":184:34");
|
|
155
181
|
this.hasValue = true;
|
|
156
182
|
}
|
|
157
183
|
}
|
package/_mjs/Subject.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subject.mjs","names":["
|
|
1
|
+
{"version":3,"file":"Subject.mjs","names":["Subject","tsplus_module_1","Observable","constructor","_closed","currentObservers","Map","observersCount","hasError","thrownError","closed","observers","observerSnapshot","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","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":";;;;;AAEA;;;;;;;AAOA,OAAM,MAAOA,OAAiB,SAAQC,eAAA,CAAAC,UAAmB;EAUvDC,YAAA;IACE,KAAK,EAAE;IAVT,KAAAC,OAAO,GAAG,KAAK;IAEL,KAAAC,gBAAgB,GAAG,IAAIC,GAAG,EAA0B;IACtD,KAAAC,cAAc,GAAO,CAAC;IAGpB,KAAAC,QAAQ,GAAgB,KAAK;IAC7B,KAAAC,WAAW,GAAa,IAAK;EAIvC;EAEA,IAAIC,MAAMA,CAAA;IACR,OAAO,IAAI,CAACN,OAAO;EACrB;EAEA,IAAIO,SAASA,CAAA;IACX,OAAQ,IAAI,CAACC,gBAAgB,KAArB,IAAI,CAACA,gBAAgB,GAAKC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACT,gBAAgB,CAACU,MAAM,EAAE,CAAC;EAC9E;EAEAC,IAAIA,CAACC,KAAQ;IACX,IAAI,CAAC,IAAI,CAACb,OAAO,EAAE;MACjB,MAAM;QAAEO;MAAS,CAAE,GAAG,IAAI;MAC1B,MAAMO,GAAG,GAAaP,SAAS,CAACQ,MAAM;MACtC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,GAAG,EAAEE,CAAC,EAAE,EAAE;QAC5BT,SAAS,CAACS,CAAC,CAAC,CAACJ,IAAI,CAACC,KAAK,CAAC;MAC1B;IACF;EACF;EAEAI,KAAKA,CAACC,GAAa;IACjB,IAAI,CAAC,IAAI,CAAClB,OAAO,EAAE;MACjB,IAAI,CAACI,QAAQ,GAAS,IAAI,CAACJ,OAAO,GAAG,IAAI;MACzC,IAAI,CAACK,WAAW,GAAMa,GAAG;MACzB,MAAM;QAAEX;MAAS,CAAE,GAAG,IAAI;MAC1B,MAAMO,GAAG,GAAaP,SAAS,CAACQ,MAAM;MACtC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,GAAG,EAAEE,CAAC,EAAE,EAAE;QAC5BT,SAAS,CAACS,CAAC,CAAC,CAACC,KAAK,CAACC,GAAG,CAAC;MACzB;MACA,IAAI,CAACC,cAAc,EAAE;IACvB;EACF;EAEAC,QAAQA,CAAA;IACN,IAAI,CAAC,IAAI,CAACpB,OAAO,EAAE;MACjB,IAAI,CAACA,OAAO,GAAU,IAAI;MAC1B,MAAM;QAAEO;MAAS,CAAE,GAAG,IAAI;MAC1B,MAAMO,GAAG,GAAaP,SAAS,CAACQ,MAAM;MACtC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,GAAG,EAAEE,CAAC,EAAE,EAAE;QAC5BT,SAAS,CAACS,CAAC,CAAC,CAACI,QAAQ,EAAE;MACzB;MACA,IAAI,CAACD,cAAc,EAAE;IACvB;EACF;EAEAE,WAAWA,CAAA;IACT,IAAI,CAACrB,OAAO,GAAG,IAAI;IACnB,IAAI,CAACmB,cAAc,EAAE;EACvB;EAEA,IAAIG,QAAQA,CAAA;IACV,OAAO,IAAI,CAACrB,gBAAgB,CAACsB,IAAI,GAAG,CAAC;EACvC;EAEUC,aAAaA,CAAA;IACrB,IAAI,IAAI,CAACxB,OAAO,EAAE;MAChB,MAAM,IAAIyB,KAAK,CAAC,qBAAqB,CAAC;IACxC;EACF;EAEUN,cAAcA,CAAA;IACtB,IAAI,CAAClB,gBAAgB,CAACyB,KAAK,EAAE;IAC7B,IAAI,CAAClB,gBAAgB,GAAGmB,SAAS;EACnC;EAEUC,YAAYA,CAACC,UAA4B,EAAEC,WAA2B;IAC9E,IAAI,CAACN,aAAa,EAAE;IACpB,OAAO,KAAK,CAACI,YAAY,CAACC,UAAU,EAAEC,WAAW,CAAC;EACpD;EAEUC,iBAAiBA,CAACF,UAA4B;IACtD,IAAI,CAACG,sBAAsB,CAACH,UAAU,CAAC;IACvC,OAAO,IAAI,CAACI,cAAc,CAACJ,UAAU,CAAC;EACxC;EAEUI,cAAcA,CAACJ,UAA4B;IACnD,MAAM;MAAEzB,QAAQ;MAAEJ,OAAO,EAAEM;IAAM,CAAE,GAAG,IAAI;IAC1C,IAAIF,QAAQ,IAAIE,MAAM,EAAE;MACtB,OAAA4B,eAAA,CAAAC,kBAAA;IACF;IAEA,MAAM;MAAElC;IAAgB,CAAE,GAAG,IAAI;IAEjC,MAAMmC,UAAU,GAAG,IAAI,CAACjC,cAAc,EAAE;IACxCF,gBAAgB,CAACoC,GAAG,CAACD,UAAU,EAAEP,UAAU,CAAC;IAC5C,IAAI,CAACrB,gBAAgB,GAAGmB,SAAS;IACjCE,UAAU,CAACS,GAAG,CAAC,MAAK;MAClBrC,gBAAgB,CAACsC,MAAM,CAACH,UAAU,CAAC;MACnC,IAAI,CAAC5B,gBAAgB,GAAGmB,SAAS;IACnC,CAAC,CAAC;IACF,OAAOE,UAAU;EACnB;EAEUG,sBAAsBA,CAACH,UAAgC;IAC/D,MAAM;MAAEzB,QAAQ;MAAEC,WAAW;MAAEL,OAAO,EAAEM;IAAM,CAAE,GAAG,IAAI;IACvD,IAAIF,QAAQ,EAAE;MACZyB,UAAU,CAACZ,KAAK,CAACZ,WAAW,CAAC;IAC/B,CAAC,MAAM,IAAIC,MAAM,EAAE;MACjBuB,UAAU,CAACT,QAAQ,EAAE;IACvB;EACF;EAEAoB,YAAYA,CAAA;IACV,MAAMC,UAAU,GAAQ,IAAA5C,eAAA,CAAIC,UAAU,EAAW;IACjD2C,UAAU,CAACC,MAAM,GAAO,IAAI;IAC5B,OAAOD,UAAU;EACnB;;AAGF,OAAM,MAAOE,gBAA0B,SAAQ/C,OAAgB;EAC7DG,YACY6C,WAA4B,EACtCF,MAA4B;IAE5B,KAAK,EAAE;IAHG,KAAAE,WAAW,GAAXA,WAAW;IAIrB,IAAI,CAACF,MAAM,GAAGA,MAAM;EACtB;EACA9B,IAAIA,CAACC,KAAQ;IACX,IAAI,CAAC+B,WAAW,EAAEhC,IAAI,GAAGC,KAAK,CAAC;EACjC;EACAI,KAAKA,CAACC,GAAa;IACjB,IAAI,CAAC0B,WAAW,EAAE3B,KAAK,GAAGC,GAAG,CAAC;EAChC;EACAE,QAAQA,CAAA;IACN,IAAI,CAACwB,WAAW,EAAExB,QAAQ,GAAE,CAAE;EAChC;EAEA;EACUW,iBAAiBA,CAAOF,UAA4B;IAC5D,OAAO,IAAI,CAACa,MAAM,EAAEG,kBAAkB,CAAC,IAAI,CAACf,WAAW,CAAC,CAACgB,SAAS,CAACjB,UAAU,CAAC,IAAAK,eAAA,CAAAC,kBAAsB;EACtG;;AAGF,OAAM,MAAOY,YAAsB,SAAQnD,OAAgB;EAA3DG,YAAA;;IACU,KAAAc,KAAK,GAA+B,IAAI;IACxC,KAAAmC,QAAQ,GAAK,KAAK;IAClB,KAAAC,UAAU,GAAG,KAAK;EA2C5B;EAzCE;EACUjB,sBAAsBA,CAACH,UAA4B;IAC3D,MAAM;MAAEzB,QAAQ;MAAE4C,QAAQ;MAAEnC,KAAK;MAAER,WAAW;MAAEL,OAAO,EAAEM,MAAM;MAAE2C;IAAU,CAAE,GAAG,IAAI;IACpF,IAAI7C,QAAQ,EAAE;MACZyB,UAAU,CAACZ,KAAK,CAACZ,WAAW,CAAC;IAC/B,CAAC,MAAM,IAAIC,MAAM,IAAI2C,UAAU,EAAE;MAC/BD,QAAQ,IACNE,eAAA,CAAAC,KAAA,CACGC,CAAC,IAAKvB,UAAU,CAACZ,KAAK,CAACmC,CAAC,CAAC,EACzBC,CAAC,IAAKxB,UAAU,CAACjB,IAAI,CAACyC,CAAC,CAAC,EAF3BxC,KAAM,CAGL;MACHgB,UAAU,CAACT,QAAQ,EAAE;IACvB;EACF;EAEAR,IAAIA,CAACC,KAAQ;IACX,IAAI,CAAC,IAAI,CAACb,OAAO,EAAE;MACjB,IAAI,CAACa,KAAK,GAAMyC,eAAA,CAAAC,KAAA,CAAa1C,KAAK,EAAA2C,UAAA,aAAC;MACnC,IAAI,CAACR,QAAQ,GAAG,IAAI;IACtB;EACF;EAEA/B,KAAKA,CAACC,GAAa;IACjB,IAAI,CAAC,IAAI,CAAClB,OAAO,EAAE;MACjB,IAAI,CAACa,KAAK,GAAMyC,eAAA,CAAAG,IAAA,CAAYvC,GAAG,EAAAsC,UAAA,aAAC;MAChC,IAAI,CAACR,QAAQ,GAAG,IAAI;IACtB;EACF;EAEA5B,QAAQA,CAAA;IACN,MAAM;MAAE4B,QAAQ;MAAEnC,KAAK;MAAEoC;IAAU,CAAE,GAAG,IAAI;IAC5C,IAAI,CAACA,UAAU,EAAE;MACf,IAAI,CAACA,UAAU,GAAG,IAAI;MACtBD,QAAQ,IACNE,eAAA,CAAAC,KAAA,CACGC,CAAC,IAAK,KAAK,CAACnC,KAAK,CAACmC,CAAC,CAAC,EACpBC,CAAC,IAAK,KAAK,CAACzC,IAAI,CAACyC,CAAC,CAAC,EAFtBxC,KAAM,CAGL;MACH,KAAK,CAACO,QAAQ,EAAE;IAClB;EACF","ignoreList":[]}
|
package/_mjs/Subscriber.mjs
CHANGED
|
@@ -1,127 +1,179 @@
|
|
|
1
1
|
var _a;
|
|
2
2
|
import * as tsplus_module_1 from "@fncts/observable/Subscription";
|
|
3
|
-
import * as tsplus_module_2 from "@fncts/
|
|
4
|
-
import * as tsplus_module_3 from "@fncts/
|
|
5
|
-
import * as tsplus_module_4 from "@fncts/
|
|
3
|
+
import * as tsplus_module_2 from "@fncts/observable/Notification";
|
|
4
|
+
import * as tsplus_module_3 from "@fncts/base/data/Cause/api";
|
|
5
|
+
import * as tsplus_module_4 from "@fncts/observable/internal/util";
|
|
6
|
+
import * as tsplus_module_5 from "@fncts/base/util/predicates";
|
|
7
|
+
import * as tsplus_module_6 from "@fncts/observable/internal/timeoutProvider";
|
|
8
|
+
import { isFunction } from "@fncts/base/util/predicates";
|
|
9
|
+
import { config } from "./config.mjs";
|
|
10
|
+
import { reportUnhandledError } from "./internal/util.mjs";
|
|
6
11
|
export const SubscriberTypeId = /*#__PURE__*/Symbol.for("fncts.observable.Subscriber");
|
|
12
|
+
/**
|
|
13
|
+
* @tsplus type fncts.observable.Subscriber
|
|
14
|
+
*/
|
|
7
15
|
export class Subscriber extends tsplus_module_1.Subscription {
|
|
8
|
-
constructor(
|
|
9
|
-
super();
|
|
16
|
+
constructor(destination, overrides) {
|
|
17
|
+
super(overrides?.finalize);
|
|
10
18
|
this[_a] = SubscriberTypeId;
|
|
11
19
|
this.isStopped = false;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
this.nextOverride = null;
|
|
21
|
+
this.errorOverride = null;
|
|
22
|
+
this.completeOverride = null;
|
|
23
|
+
this.destination = destination instanceof Subscriber ? destination : createSafeObserver(destination);
|
|
24
|
+
this.nextOverride = overrides?.next ?? null;
|
|
25
|
+
this.errorOverride = overrides?.error ?? null;
|
|
26
|
+
this.completeOverride = overrides?.complete ?? null;
|
|
27
|
+
this.next = this.nextOverride ? overrideNext : this.next;
|
|
28
|
+
this.error = this.errorOverride ? overrideError : this.error;
|
|
29
|
+
this.complete = this.completeOverride ? overrideComplete : this.complete;
|
|
30
|
+
if (hasAddAndUnsubscribe(destination)) {
|
|
31
|
+
destination.add(this);
|
|
19
32
|
}
|
|
20
33
|
}
|
|
21
34
|
next(value) {
|
|
22
|
-
if (
|
|
35
|
+
if (this.isStopped) {
|
|
36
|
+
handleStoppedNotification(tsplus_module_2.next(value), this);
|
|
37
|
+
} else {
|
|
23
38
|
this._next(value);
|
|
24
39
|
}
|
|
25
40
|
}
|
|
26
41
|
error(err) {
|
|
27
|
-
if (
|
|
42
|
+
if (this.isStopped) {
|
|
43
|
+
handleStoppedNotification(tsplus_module_2.error(err), this);
|
|
44
|
+
} else {
|
|
28
45
|
this.isStopped = true;
|
|
29
46
|
this._error(err);
|
|
30
47
|
}
|
|
31
48
|
}
|
|
32
49
|
complete() {
|
|
33
|
-
if (
|
|
50
|
+
if (this.isStopped) {
|
|
51
|
+
handleStoppedNotification(tsplus_module_2.complete(), this);
|
|
52
|
+
} else {
|
|
34
53
|
this.isStopped = true;
|
|
35
54
|
this._complete();
|
|
36
55
|
}
|
|
37
56
|
}
|
|
38
57
|
unsubscribe() {
|
|
39
|
-
if (!this.
|
|
58
|
+
if (!this._closed) {
|
|
40
59
|
this.isStopped = true;
|
|
41
60
|
super.unsubscribe();
|
|
42
|
-
this.
|
|
61
|
+
this.destination = null;
|
|
43
62
|
}
|
|
44
63
|
}
|
|
45
64
|
_next(value) {
|
|
46
|
-
this.
|
|
65
|
+
this.destination.next(value);
|
|
47
66
|
}
|
|
48
67
|
_error(err) {
|
|
49
68
|
try {
|
|
50
|
-
this.
|
|
69
|
+
this.destination.error(err);
|
|
51
70
|
} finally {
|
|
52
71
|
this.unsubscribe();
|
|
53
72
|
}
|
|
54
73
|
}
|
|
55
74
|
_complete() {
|
|
56
75
|
try {
|
|
57
|
-
this.
|
|
76
|
+
this.destination.complete();
|
|
58
77
|
} finally {
|
|
59
78
|
this.unsubscribe();
|
|
60
79
|
}
|
|
61
80
|
}
|
|
62
81
|
}
|
|
63
82
|
_a = SubscriberTypeId;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
83
|
+
function createSafeObserver(observerOrNext) {
|
|
84
|
+
return new ConsumerObserver(!observerOrNext || isFunction(observerOrNext) ? {
|
|
85
|
+
next: observerOrNext ?? undefined
|
|
86
|
+
} : observerOrNext);
|
|
87
|
+
}
|
|
88
|
+
export class ConsumerObserver {
|
|
89
|
+
constructor(partialObserver) {
|
|
90
|
+
this.partialObserver = partialObserver;
|
|
91
|
+
this.onError = reportUnhandledError;
|
|
92
|
+
this.onError = partialObserver.error ?? reportUnhandledError;
|
|
93
|
+
}
|
|
94
|
+
next(value) {
|
|
95
|
+
const {
|
|
96
|
+
partialObserver
|
|
97
|
+
} = this;
|
|
98
|
+
if (partialObserver.next) {
|
|
99
|
+
try {
|
|
100
|
+
partialObserver.next(value);
|
|
101
|
+
} catch (error) {
|
|
102
|
+
this.onError(tsplus_module_3.halt(error));
|
|
103
|
+
}
|
|
81
104
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
105
|
+
}
|
|
106
|
+
error(err) {
|
|
107
|
+
const {
|
|
108
|
+
partialObserver
|
|
109
|
+
} = this;
|
|
110
|
+
if (partialObserver.error) {
|
|
111
|
+
try {
|
|
112
|
+
partialObserver.error(err);
|
|
113
|
+
} catch (error) {
|
|
114
|
+
this.onError(tsplus_module_3.halt(error));
|
|
115
|
+
}
|
|
88
116
|
} else {
|
|
89
|
-
this.
|
|
90
|
-
next: next ? wrapThrowHandler(next) : tsplus_module_3.noop,
|
|
91
|
-
error: wrapThrowHandler(error ?? defaultErrorHandler),
|
|
92
|
-
complete: complete ? wrapThrowHandler(complete) : tsplus_module_3.noop
|
|
93
|
-
};
|
|
117
|
+
this.onError(err);
|
|
94
118
|
}
|
|
95
119
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
120
|
+
complete() {
|
|
121
|
+
const {
|
|
122
|
+
partialObserver
|
|
123
|
+
} = this;
|
|
124
|
+
if (partialObserver.complete) {
|
|
125
|
+
try {
|
|
126
|
+
partialObserver.complete();
|
|
127
|
+
} catch (error) {
|
|
128
|
+
this.onError(tsplus_module_3.halt(error));
|
|
129
|
+
}
|
|
103
130
|
}
|
|
104
|
-
}
|
|
131
|
+
}
|
|
105
132
|
}
|
|
106
|
-
function
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
133
|
+
function overrideNext(value) {
|
|
134
|
+
try {
|
|
135
|
+
this.nextOverride(value);
|
|
136
|
+
} catch (error) {
|
|
137
|
+
this.destination.error(tsplus_module_3.halt(error));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
function overrideError(err) {
|
|
141
|
+
try {
|
|
142
|
+
this.errorOverride(err);
|
|
143
|
+
} catch (error) {
|
|
144
|
+
this.destination.error(tsplus_module_3.halt(error));
|
|
145
|
+
} finally {
|
|
146
|
+
this.unsubscribe();
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function overrideComplete() {
|
|
150
|
+
try {
|
|
151
|
+
this.completeOverride();
|
|
152
|
+
} catch (error) {
|
|
153
|
+
this.destination.error(tsplus_module_3.halt(error));
|
|
154
|
+
} finally {
|
|
155
|
+
this.unsubscribe();
|
|
156
|
+
}
|
|
114
157
|
}
|
|
115
158
|
function defaultErrorHandler(error) {
|
|
116
159
|
throw error;
|
|
117
160
|
}
|
|
118
161
|
export const EMPTY_OBSERVER = {
|
|
119
162
|
closed: true,
|
|
120
|
-
next:
|
|
163
|
+
next: tsplus_module_4.noop,
|
|
121
164
|
error: defaultErrorHandler,
|
|
122
|
-
complete:
|
|
165
|
+
complete: tsplus_module_4.noop
|
|
123
166
|
};
|
|
167
|
+
function hasAddAndUnsubscribe(value) {
|
|
168
|
+
return value && isFunction(value.unsubscribe) && isFunction(value.add);
|
|
169
|
+
}
|
|
124
170
|
export function isSubscriber(u) {
|
|
125
|
-
return
|
|
171
|
+
return tsplus_module_5.isObject(u) && SubscriberTypeId in u;
|
|
172
|
+
}
|
|
173
|
+
function handleStoppedNotification(notification, subscriber) {
|
|
174
|
+
const {
|
|
175
|
+
onStoppedNotification
|
|
176
|
+
} = config;
|
|
177
|
+
onStoppedNotification && tsplus_module_6.timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));
|
|
126
178
|
}
|
|
127
179
|
//# sourceMappingURL=Subscriber.mjs.map
|
package/_mjs/Subscriber.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subscriber.mjs","names":["SubscriberTypeId","Symbol","for","Subscriber","tsplus_module_1","Subscription","constructor","
|
|
1
|
+
{"version":3,"file":"Subscriber.mjs","names":["isFunction","config","reportUnhandledError","SubscriberTypeId","Symbol","for","Subscriber","tsplus_module_1","Subscription","constructor","destination","overrides","finalize","_a","isStopped","nextOverride","errorOverride","completeOverride","createSafeObserver","next","error","complete","overrideNext","overrideError","overrideComplete","hasAddAndUnsubscribe","add","value","handleStoppedNotification","tsplus_module_2","_next","err","_error","_complete","unsubscribe","_closed","observerOrNext","ConsumerObserver","undefined","partialObserver","onError","tsplus_module_3","halt","defaultErrorHandler","EMPTY_OBSERVER","closed","tsplus_module_4","noop","isSubscriber","u","tsplus_module_5","isObject","notification","subscriber","onStoppedNotification","tsplus_module_6","timeoutProvider","setTimeout"],"sources":["../_src/Subscriber.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/_mjs/Subscription.mjs
CHANGED
|
@@ -9,14 +9,14 @@ export class Subscription {
|
|
|
9
9
|
constructor(initialFinalizer) {
|
|
10
10
|
this.initialFinalizer = initialFinalizer;
|
|
11
11
|
this[_a] = SubscriptionTypeId;
|
|
12
|
-
this.
|
|
12
|
+
this._closed = false;
|
|
13
13
|
this.finalizers = null;
|
|
14
14
|
this.parents = null;
|
|
15
15
|
}
|
|
16
16
|
unsubscribe() {
|
|
17
17
|
let errors;
|
|
18
|
-
if (!this.
|
|
19
|
-
this.
|
|
18
|
+
if (!this._closed) {
|
|
19
|
+
this._closed = true;
|
|
20
20
|
const {
|
|
21
21
|
parents,
|
|
22
22
|
initialFinalizer,
|
|
@@ -57,11 +57,11 @@ export class Subscription {
|
|
|
57
57
|
}
|
|
58
58
|
add(finalizer) {
|
|
59
59
|
if (finalizer && finalizer !== this) {
|
|
60
|
-
if (this.
|
|
60
|
+
if (this._closed) {
|
|
61
61
|
executeFinalizer(finalizer);
|
|
62
62
|
} else {
|
|
63
63
|
if (isSubscription(finalizer)) {
|
|
64
|
-
if (finalizer.
|
|
64
|
+
if (finalizer._closed || finalizer.hasParent(this)) {
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
67
|
finalizer.addParent(this);
|
|
@@ -105,7 +105,7 @@ function executeFinalizer(finalizer) {
|
|
|
105
105
|
*/
|
|
106
106
|
export const EMPTY_SUBSCRIPTION = /*#__PURE__*/(() => {
|
|
107
107
|
const empty = /*#__PURE__*/new Subscription();
|
|
108
|
-
empty.
|
|
108
|
+
empty._closed = true;
|
|
109
109
|
return empty;
|
|
110
110
|
})();
|
|
111
111
|
export const UnsubscribeErrorTypeId = /*#__PURE__*/Symbol.for("@principia/observable/UnsubscribeError");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subscription.mjs","names":["SubscriptionTypeId","Symbol","for","Subscription","constructor","initialFinalizer","_a","
|
|
1
|
+
{"version":3,"file":"Subscription.mjs","names":["SubscriptionTypeId","Symbol","for","Subscription","constructor","initialFinalizer","_a","_closed","finalizers","parents","unsubscribe","errors","parent","remove","e","isUnsubscribeError","finalizer","executeFinalizer","push","UnsubscribeError","add","isSubscription","hasParent","addParent","Set","parentage","has","removeParent","delete","u","tsplus_module_1","isObject","EMPTY_SUBSCRIPTION","empty","UnsubscribeErrorTypeId","_b"],"sources":["../_src/Subscription.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/_mjs/config.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.mjs","names":["config","onUnhandledError","onStoppedNotification"],"sources":["../_src/config.ts"],"sourcesContent":[null],"mappings":"AAEA;;;;AAIA,OAAO,MAAMA,MAAM,GAAiB;EAClCC,gBAAgB,EAAE,IAAI;EACtBC,qBAAqB,EAAE;CACxB","ignoreList":[]}
|
package/_src/AsyncAction.ts
CHANGED
|
@@ -15,7 +15,7 @@ export class AsyncAction<A> extends Action<A> {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
schedule(state?: A, delay = 0): Subscription {
|
|
18
|
-
if (this.
|
|
18
|
+
if (this._closed) {
|
|
19
19
|
return this;
|
|
20
20
|
}
|
|
21
21
|
|
|
@@ -48,7 +48,7 @@ export class AsyncAction<A> extends Action<A> {
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
public execute(state: A, delay: number): unknown {
|
|
51
|
-
if (this.
|
|
51
|
+
if (this._closed) {
|
|
52
52
|
throw new Error("executing a cancelled action");
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -77,7 +77,7 @@ export class AsyncAction<A> extends Action<A> {
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
unsubscribe() {
|
|
80
|
-
if (!this.
|
|
80
|
+
if (!this._closed) {
|
|
81
81
|
const { id, scheduler } = this;
|
|
82
82
|
const { actions } = scheduler;
|
|
83
83
|
|
package/_src/BehaviorSubject.ts
CHANGED
|
@@ -18,7 +18,7 @@ export class BehaviorSubject<A> extends Subject<never, never, A> {
|
|
|
18
18
|
|
|
19
19
|
protected subscribeInternal(subscriber: Subscriber<never, A>) {
|
|
20
20
|
const subscription = super.subscribeInternal(subscriber);
|
|
21
|
-
!subscription.
|
|
21
|
+
!subscription._closed && subscriber.next(this._value);
|
|
22
22
|
return subscription;
|
|
23
23
|
}
|
|
24
24
|
|
|
@@ -15,12 +15,12 @@ export function connect<R, E, A, R1, E1, B>(
|
|
|
15
15
|
) {
|
|
16
16
|
return (fa: Observable<R, E, A>): Observable<R | R1, E | E1, B> => {
|
|
17
17
|
const { connector } = config;
|
|
18
|
-
return
|
|
18
|
+
return new Observable((subscriber, environment) => {
|
|
19
19
|
const subject = connector();
|
|
20
20
|
Observable.from(selector(Observable.fromSubscribable(subject)))
|
|
21
21
|
.provideEnvironment(environment)
|
|
22
22
|
.subscribe(subscriber);
|
|
23
|
-
subscriber.add(
|
|
23
|
+
subscriber.add(fa.provideEnvironment(environment).subscribe(subject));
|
|
24
24
|
});
|
|
25
25
|
};
|
|
26
26
|
}
|
|
@@ -31,7 +31,7 @@ export class Connectable<R, E, A> extends Observable<R, E, A> implements Connect
|
|
|
31
31
|
this.source = Observable.from(source);
|
|
32
32
|
}
|
|
33
33
|
connect() {
|
|
34
|
-
if (!this.connection || this.connection.
|
|
34
|
+
if (!this.connection || this.connection._closed) {
|
|
35
35
|
this.connection = Observable.defer(this.source).provideEnvironment(this.environment).subscribe(this.subject);
|
|
36
36
|
if (this.resetOnDisconnect) {
|
|
37
37
|
this.connection.add(() => (this.subject = this.connector()));
|