@fncts/observable 0.0.31 → 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/Action.d.ts +2 -1
- package/AsyncScheduler.d.ts +1 -1
- package/LICENSE +26 -0
- package/ObservableRef/api.d.ts +3 -3
- package/ObservableRef/definition.d.ts +3 -3
- package/_cjs/Action.cjs +15 -16
- package/_cjs/Action.cjs.map +1 -1
- package/_cjs/AnimationFrameAction.cjs +30 -33
- 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 -88
- 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 -37
- package/_cjs/BehaviorSubject.cjs.map +1 -1
- package/_cjs/Notification.cjs +65 -70
- 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 -45
- 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 -2033
- 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 -156
- package/_cjs/ObservableRef/api.cjs.map +1 -1
- package/_cjs/ObservableRef/atomic.cjs +25 -28
- package/_cjs/ObservableRef/atomic.cjs.map +1 -1
- package/_cjs/ObservableRef/definition.cjs +32 -27
- 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 -61
- 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 -202
- 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 -123
- 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 -24
- 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 -79
- package/_mjs/AsyncAction.mjs.map +1 -1
- package/_mjs/AsyncScheduler.mjs +32 -34
- package/_mjs/AsyncScheduler.mjs.map +1 -1
- package/_mjs/BehaviorSubject.mjs +28 -29
- package/_mjs/BehaviorSubject.mjs.map +1 -1
- package/_mjs/Notification.mjs +57 -60
- 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 -35
- 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 -2030
- 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 -144
- package/_mjs/ObservableRef/api.mjs.map +1 -1
- package/_mjs/ObservableRef/atomic.mjs +21 -20
- package/_mjs/ObservableRef/atomic.mjs.map +1 -1
- package/_mjs/ObservableRef/definition.mjs +29 -19
- 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 -50
- 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 -191
- 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 -113
- 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/Action.ts +2 -0
- package/_src/AsyncScheduler.ts +2 -0
- package/_src/Observable/api.ts +4 -4
- package/_src/ObservableRef/api.ts +36 -12
- package/_src/ObservableRef/definition.ts +12 -4
- 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/_mjs/Operator.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Operator.mjs","names":["
|
|
1
|
+
{"version":3,"file":"Operator.mjs","names":[],"sources":["../esm/Operator.js"],"sourcesContent":["import * as tsplus_module_1 from \"@fncts/observable/Subscriber\";\nimport * as tsplus_module_2 from \"@fncts/base/data/Cause/api\";\nimport * as tsplus_module_3 from \"@fncts/base/data/Either/api\";\nexport class OperatorSubscriber extends tsplus_module_1.Subscriber {\n onFinalize;\n constructor(destination, observer, onFinalize) {\n super(destination);\n this.onFinalize = onFinalize;\n this.next = observer.next\n ? function (value) {\n try {\n observer.next(value);\n }\n catch (err) {\n destination.error(tsplus_module_2.halt(err));\n }\n }\n : super.next;\n this.error = observer.error\n ? function (error) {\n try {\n observer.error(error);\n }\n catch (err) {\n destination.error(tsplus_module_2.halt(err));\n this.unsubscribe();\n }\n finally {\n if (tsplus_module_3.isRight(tsplus_module_2.failureOrCause(error))) {\n this.unsubscribe();\n }\n }\n }\n : super.error;\n this.complete = observer.complete\n ? function () {\n try {\n observer.complete();\n }\n catch (err) {\n destination.error(tsplus_module_2.halt(err));\n }\n finally {\n this.unsubscribe();\n }\n }\n : super.complete;\n }\n unsubscribe() {\n const { _closed: closed } = this;\n super.unsubscribe();\n !closed && this.onFinalize?.();\n }\n}\nexport function operatorSubscriber(destination, observer, onFinalize) {\n return new OperatorSubscriber(destination, observer, onFinalize);\n}\n/**\n * @tsplus pipeable fncts.observable.Subscriber operate\n */\nexport function operate_(config) {\n return (destination) => {\n // @ts-expect-error\n return new tsplus_module_1.Subscriber(destination, config);\n };\n}\n//# sourceMappingURL=Operator.js.map"],"mappings":";;;;AAGA,IAAa,qBAAb,cAAwC,gBAAgB,WAAW;CAC/D;CACA,YAAY,aAAa,UAAU,YAAY;AAC3C,QAAM,YAAY;AAClB,OAAK,aAAa;AAClB,OAAK,OAAO,SAAS,OACf,SAAU,OAAO;AACf,OAAI;AACA,aAAS,KAAK,MAAM;YAEjB,KAAK;AACR,gBAAY,MAAM,gBAAgB,KAAK,IAAI,CAAC;;MAGlD,MAAM;AACZ,OAAK,QAAQ,SAAS,QAChB,SAAU,OAAO;AACf,OAAI;AACA,aAAS,MAAM,MAAM;YAElB,KAAK;AACR,gBAAY,MAAM,gBAAgB,KAAK,IAAI,CAAC;AAC5C,SAAK,aAAa;aAEd;AACJ,QAAI,gBAAgB,QAAQ,gBAAgB,eAAe,MAAM,CAAC,CAC9D,MAAK,aAAa;;MAI5B,MAAM;AACZ,OAAK,WAAW,SAAS,WACnB,WAAY;AACV,OAAI;AACA,aAAS,UAAU;YAEhB,KAAK;AACR,gBAAY,MAAM,gBAAgB,KAAK,IAAI,CAAC;aAExC;AACJ,SAAK,aAAa;;MAGxB,MAAM;;CAEhB,cAAc;EACV,MAAM,EAAE,SAAS,WAAW;AAC5B,QAAM,aAAa;AACnB,GAAC,UAAU,KAAK,cAAc;;;AAGtC,SAAgB,mBAAmB,aAAa,UAAU,YAAY;AAClE,QAAO,IAAI,mBAAmB,aAAa,UAAU,WAAW;;;;;AAKpE,SAAgB,SAAS,QAAQ;AAC7B,SAAQ,gBAAgB;AAEpB,SAAO,IAAI,gBAAgB,WAAW,aAAa,OAAO"}
|
package/_mjs/Scheduler.mjs
CHANGED
|
@@ -1,32 +1,36 @@
|
|
|
1
|
-
var _a;
|
|
2
1
|
import * as tsplus_module_1 from "@fncts/base/util/predicates";
|
|
3
2
|
import * as tsplus_module_2 from "@fncts/base/data/Cause/api";
|
|
4
3
|
import { dateTimestampProvider } from "@fncts/observable/internal/timestampProvider";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
4
|
+
//#region build/esm/Scheduler.js
|
|
5
|
+
const SchedulerTypeId = Symbol.for("fncts.observable.Scheduler");
|
|
6
|
+
var Scheduler = class Scheduler {
|
|
7
|
+
actionConstructor;
|
|
8
|
+
[SchedulerTypeId] = SchedulerTypeId;
|
|
9
|
+
now;
|
|
10
|
+
constructor(actionConstructor, now = Scheduler.now) {
|
|
11
|
+
this.actionConstructor = actionConstructor;
|
|
12
|
+
this.now = now;
|
|
13
|
+
}
|
|
14
|
+
schedule(work, delay, state) {
|
|
15
|
+
return new this.actionConstructor(this, work).schedule(state, delay);
|
|
16
|
+
}
|
|
17
|
+
static now = dateTimestampProvider.now;
|
|
18
|
+
};
|
|
19
|
+
function isScheduler(u) {
|
|
20
|
+
return tsplus_module_1.isObject(u) && SchedulerTypeId in u;
|
|
15
21
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
subscriber.error(tsplus_module_2.halt(err));
|
|
27
|
-
}
|
|
28
|
-
}, delay);
|
|
29
|
-
subscriber.add(subscription);
|
|
30
|
-
return subscription;
|
|
22
|
+
function caughtSchedule(subscriber, scheduler, execute, delay = 0) {
|
|
23
|
+
const subscription = scheduler.schedule(function() {
|
|
24
|
+
try {
|
|
25
|
+
execute.call(this);
|
|
26
|
+
} catch (err) {
|
|
27
|
+
subscriber.error(tsplus_module_2.halt(err));
|
|
28
|
+
}
|
|
29
|
+
}, delay);
|
|
30
|
+
subscriber.add(subscription);
|
|
31
|
+
return subscription;
|
|
31
32
|
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { Scheduler, SchedulerTypeId, caughtSchedule, isScheduler };
|
|
35
|
+
|
|
32
36
|
//# sourceMappingURL=Scheduler.mjs.map
|
package/_mjs/Scheduler.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scheduler.mjs","names":["
|
|
1
|
+
{"version":3,"file":"Scheduler.mjs","names":[],"sources":["../esm/Scheduler.js"],"sourcesContent":["import * as tsplus_module_1 from \"@fncts/base/util/predicates\";\nimport * as tsplus_module_2 from \"@fncts/base/data/Cause/api\";\nimport { dateTimestampProvider } from \"@fncts/observable/internal/timestampProvider\";\nexport const SchedulerTypeId = Symbol.for(\"fncts.observable.Scheduler\");\nexport class Scheduler {\n actionConstructor;\n [SchedulerTypeId] = SchedulerTypeId;\n now;\n constructor(actionConstructor, now = Scheduler.now) {\n this.actionConstructor = actionConstructor;\n this.now = now;\n }\n schedule(work, delay, state) {\n return new this.actionConstructor(this, work).schedule(state, delay);\n }\n static now = dateTimestampProvider.now;\n}\nexport function isScheduler(u) {\n return tsplus_module_1.isObject(u) && SchedulerTypeId in u;\n}\nexport function caughtSchedule(subscriber, scheduler, execute, delay = 0) {\n const subscription = scheduler.schedule(function () {\n try {\n execute.call(this);\n }\n catch (err) {\n subscriber.error(tsplus_module_2.halt(err));\n }\n }, delay);\n subscriber.add(subscription);\n return subscription;\n}\n//# sourceMappingURL=Scheduler.js.map"],"mappings":";;;;AAGA,MAAa,kBAAkB,OAAO,IAAI,6BAA6B;AACvE,IAAa,YAAb,MAAa,UAAU;CACnB;CACA,CAAC,mBAAmB;CACpB;CACA,YAAY,mBAAmB,MAAM,UAAU,KAAK;AAChD,OAAK,oBAAoB;AACzB,OAAK,MAAM;;CAEf,SAAS,MAAM,OAAO,OAAO;AACzB,SAAO,IAAI,KAAK,kBAAkB,MAAM,KAAK,CAAC,SAAS,OAAO,MAAM;;CAExE,OAAO,MAAM,sBAAsB;;AAEvC,SAAgB,YAAY,GAAG;AAC3B,QAAO,gBAAgB,SAAS,EAAE,IAAI,mBAAmB;;AAE7D,SAAgB,eAAe,YAAY,WAAW,SAAS,QAAQ,GAAG;CACtE,MAAM,eAAe,UAAU,SAAS,WAAY;AAChD,MAAI;AACA,WAAQ,KAAK,KAAK;WAEf,KAAK;AACR,cAAW,MAAM,gBAAgB,KAAK,IAAI,CAAC;;IAEhD,MAAM;AACT,YAAW,IAAI,aAAa;AAC5B,QAAO"}
|
package/_mjs/Subject.mjs
CHANGED
|
@@ -1,197 +1,160 @@
|
|
|
1
|
-
const fileName_1 = "(@fncts/observable) src/Subject.ts";
|
|
2
1
|
import * as tsplus_module_1 from "@fncts/observable/Observable";
|
|
3
2
|
import * as tsplus_module_2 from "@fncts/observable/Subscription";
|
|
4
3
|
import * as tsplus_module_3 from "@fncts/base/data/Either/destructors";
|
|
5
4
|
import * as tsplus_module_4 from "@fncts/base/data/Either/constructors";
|
|
5
|
+
//#region build/esm/Subject.js
|
|
6
|
+
const fileName_1 = "(@fncts/observable) src/Subject.ts";
|
|
6
7
|
/**
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
158
|
-
|
|
159
|
-
hasValue,
|
|
160
|
-
value,
|
|
161
|
-
thrownError,
|
|
162
|
-
_closed: closed,
|
|
163
|
-
isComplete
|
|
164
|
-
} = this;
|
|
165
|
-
if (hasError) {
|
|
166
|
-
subscriber.error(thrownError);
|
|
167
|
-
} else if (closed || isComplete) {
|
|
168
|
-
hasValue && tsplus_module_3.match(e => subscriber.error(e), a => subscriber.next(a))(value);
|
|
169
|
-
subscriber.complete();
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
next(value) {
|
|
173
|
-
if (!this._closed) {
|
|
174
|
-
this.value = tsplus_module_4.right(value, fileName_1 + ":177:35");
|
|
175
|
-
this.hasValue = true;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
error(err) {
|
|
179
|
-
if (!this._closed) {
|
|
180
|
-
this.value = tsplus_module_4.left(err, fileName_1 + ":184:34");
|
|
181
|
-
this.hasValue = true;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
complete() {
|
|
185
|
-
const {
|
|
186
|
-
hasValue,
|
|
187
|
-
value,
|
|
188
|
-
isComplete
|
|
189
|
-
} = this;
|
|
190
|
-
if (!isComplete) {
|
|
191
|
-
this.isComplete = true;
|
|
192
|
-
hasValue && tsplus_module_3.match(e => super.error(e), a => super.next(a))(value);
|
|
193
|
-
super.complete();
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
}
|
|
8
|
+
* A Subject is a special type of Observable that allows values to be
|
|
9
|
+
* multicasted to many Observers. Subjects are like EventEmitters.
|
|
10
|
+
*
|
|
11
|
+
* Every Subject is an Observable and an Observer. You can subscribe to a
|
|
12
|
+
* Subject, and you can call next to feed values as well as error and complete.
|
|
13
|
+
*/
|
|
14
|
+
var Subject = class extends tsplus_module_1.Observable {
|
|
15
|
+
_closed = false;
|
|
16
|
+
currentObservers = /* @__PURE__ */ new Map();
|
|
17
|
+
observersCount = 0;
|
|
18
|
+
observerSnapshot;
|
|
19
|
+
hasError = false;
|
|
20
|
+
thrownError = null;
|
|
21
|
+
constructor() {
|
|
22
|
+
super();
|
|
23
|
+
}
|
|
24
|
+
get closed() {
|
|
25
|
+
return this._closed;
|
|
26
|
+
}
|
|
27
|
+
get observers() {
|
|
28
|
+
return this.observerSnapshot ??= Array.from(this.currentObservers.values());
|
|
29
|
+
}
|
|
30
|
+
next(value) {
|
|
31
|
+
if (!this._closed) {
|
|
32
|
+
const { observers } = this;
|
|
33
|
+
const len = observers.length;
|
|
34
|
+
for (let i = 0; i < len; i++) observers[i].next(value);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
error(err) {
|
|
38
|
+
if (!this._closed) {
|
|
39
|
+
this.hasError = this._closed = true;
|
|
40
|
+
this.thrownError = err;
|
|
41
|
+
const { observers } = this;
|
|
42
|
+
const len = observers.length;
|
|
43
|
+
for (let i = 0; i < len; i++) observers[i].error(err);
|
|
44
|
+
this.clearObservers();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
complete() {
|
|
48
|
+
if (!this._closed) {
|
|
49
|
+
this._closed = true;
|
|
50
|
+
const { observers } = this;
|
|
51
|
+
const len = observers.length;
|
|
52
|
+
for (let i = 0; i < len; i++) observers[i].complete();
|
|
53
|
+
this.clearObservers();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
unsubscribe() {
|
|
57
|
+
this._closed = true;
|
|
58
|
+
this.clearObservers();
|
|
59
|
+
}
|
|
60
|
+
get observed() {
|
|
61
|
+
return this.currentObservers.size > 0;
|
|
62
|
+
}
|
|
63
|
+
throwIfClosed() {
|
|
64
|
+
if (this._closed) throw new Error("Object Unsubscribed");
|
|
65
|
+
}
|
|
66
|
+
clearObservers() {
|
|
67
|
+
this.currentObservers.clear();
|
|
68
|
+
this.observerSnapshot = void 0;
|
|
69
|
+
}
|
|
70
|
+
trySubscribe(subscriber, environment) {
|
|
71
|
+
this.throwIfClosed();
|
|
72
|
+
return super.trySubscribe(subscriber, environment);
|
|
73
|
+
}
|
|
74
|
+
subscribeInternal(subscriber) {
|
|
75
|
+
this.checkFinalizedStatuses(subscriber);
|
|
76
|
+
return this.innerSubscribe(subscriber);
|
|
77
|
+
}
|
|
78
|
+
innerSubscribe(subscriber) {
|
|
79
|
+
const { hasError, _closed: closed } = this;
|
|
80
|
+
if (hasError || closed) return tsplus_module_2.EMPTY_SUBSCRIPTION;
|
|
81
|
+
const { currentObservers } = this;
|
|
82
|
+
const observerId = this.observersCount++;
|
|
83
|
+
currentObservers.set(observerId, subscriber);
|
|
84
|
+
this.observerSnapshot = void 0;
|
|
85
|
+
subscriber.add(() => {
|
|
86
|
+
currentObservers.delete(observerId);
|
|
87
|
+
this.observerSnapshot = void 0;
|
|
88
|
+
});
|
|
89
|
+
return subscriber;
|
|
90
|
+
}
|
|
91
|
+
checkFinalizedStatuses(subscriber) {
|
|
92
|
+
const { hasError, thrownError, _closed: closed } = this;
|
|
93
|
+
if (hasError) subscriber.error(thrownError);
|
|
94
|
+
else if (closed) subscriber.complete();
|
|
95
|
+
}
|
|
96
|
+
asObservable() {
|
|
97
|
+
const observable = new tsplus_module_1.Observable();
|
|
98
|
+
observable.source = this;
|
|
99
|
+
return observable;
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
var AnonymousSubject = class extends Subject {
|
|
103
|
+
destination;
|
|
104
|
+
constructor(destination, source) {
|
|
105
|
+
super();
|
|
106
|
+
this.destination = destination;
|
|
107
|
+
this.source = source;
|
|
108
|
+
}
|
|
109
|
+
next(value) {
|
|
110
|
+
this.destination?.next?.(value);
|
|
111
|
+
}
|
|
112
|
+
error(err) {
|
|
113
|
+
this.destination?.error?.(err);
|
|
114
|
+
}
|
|
115
|
+
complete() {
|
|
116
|
+
this.destination?.complete?.();
|
|
117
|
+
}
|
|
118
|
+
/** @internal */
|
|
119
|
+
subscribeInternal(subscriber) {
|
|
120
|
+
return this.source?.provideEnvironment(this.environment).subscribe(subscriber) ?? tsplus_module_2.EMPTY_SUBSCRIPTION;
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
var AsyncSubject = class extends Subject {
|
|
124
|
+
value = null;
|
|
125
|
+
hasValue = false;
|
|
126
|
+
isComplete = false;
|
|
127
|
+
/** @internal */
|
|
128
|
+
checkFinalizedStatuses(subscriber) {
|
|
129
|
+
const { hasError, hasValue, value, thrownError, _closed: closed, isComplete } = this;
|
|
130
|
+
if (hasError) subscriber.error(thrownError);
|
|
131
|
+
else if (closed || isComplete) {
|
|
132
|
+
hasValue && tsplus_module_3.match((e) => subscriber.error(e), (a) => subscriber.next(a))(value);
|
|
133
|
+
subscriber.complete();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
next(value) {
|
|
137
|
+
if (!this._closed) {
|
|
138
|
+
this.value = tsplus_module_4.right(value, fileName_1 + ":177:35");
|
|
139
|
+
this.hasValue = true;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
error(err) {
|
|
143
|
+
if (!this._closed) {
|
|
144
|
+
this.value = tsplus_module_4.left(err, fileName_1 + ":184:34");
|
|
145
|
+
this.hasValue = true;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
complete() {
|
|
149
|
+
const { hasValue, value, isComplete } = this;
|
|
150
|
+
if (!isComplete) {
|
|
151
|
+
this.isComplete = true;
|
|
152
|
+
hasValue && tsplus_module_3.match((e) => super.error(e), (a) => super.next(a))(value);
|
|
153
|
+
super.complete();
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
//#endregion
|
|
158
|
+
export { AnonymousSubject, AsyncSubject, Subject };
|
|
159
|
+
|
|
197
160
|
//# sourceMappingURL=Subject.mjs.map
|
package/_mjs/Subject.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subject.mjs","names":["Subject","tsplus_module_1"
|
|
1
|
+
{"version":3,"file":"Subject.mjs","names":[],"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":";;;;;AAAA,MAAM,aAAa;;;;;;;;AAYnB,IAAa,UAAb,cAA6B,gBAAgB,WAAW;CACpD,UAAU;CACV,mCAAmB,IAAI,KAAK;CAC5B,iBAAiB;CACjB;CACA,WAAW;CACX,cAAc;CACd,cAAc;AACV,SAAO;;CAEX,IAAI,SAAS;AACT,SAAO,KAAK;;CAEhB,IAAI,YAAY;AACZ,SAAQ,KAAK,qBAAqB,MAAM,KAAK,KAAK,iBAAiB,QAAQ,CAAC;;CAEhF,KAAK,OAAO;AACR,MAAI,CAAC,KAAK,SAAS;GACf,MAAM,EAAE,cAAc;GACtB,MAAM,MAAM,UAAU;AACtB,QAAK,IAAI,IAAI,GAAG,IAAI,KAAK,IACrB,WAAU,GAAG,KAAK,MAAM;;;CAIpC,MAAM,KAAK;AACP,MAAI,CAAC,KAAK,SAAS;AACf,QAAK,WAAW,KAAK,UAAU;AAC/B,QAAK,cAAc;GACnB,MAAM,EAAE,cAAc;GACtB,MAAM,MAAM,UAAU;AACtB,QAAK,IAAI,IAAI,GAAG,IAAI,KAAK,IACrB,WAAU,GAAG,MAAM,IAAI;AAE3B,QAAK,gBAAgB;;;CAG7B,WAAW;AACP,MAAI,CAAC,KAAK,SAAS;AACf,QAAK,UAAU;GACf,MAAM,EAAE,cAAc;GACtB,MAAM,MAAM,UAAU;AACtB,QAAK,IAAI,IAAI,GAAG,IAAI,KAAK,IACrB,WAAU,GAAG,UAAU;AAE3B,QAAK,gBAAgB;;;CAG7B,cAAc;AACV,OAAK,UAAU;AACf,OAAK,gBAAgB;;CAEzB,IAAI,WAAW;AACX,SAAO,KAAK,iBAAiB,OAAO;;CAExC,gBAAgB;AACZ,MAAI,KAAK,QACL,OAAM,IAAI,MAAM,sBAAsB;;CAG9C,iBAAiB;AACb,OAAK,iBAAiB,OAAO;AAC7B,OAAK,mBAAmB,KAAA;;CAE5B,aAAa,YAAY,aAAa;AAClC,OAAK,eAAe;AACpB,SAAO,MAAM,aAAa,YAAY,YAAY;;CAEtD,kBAAkB,YAAY;AAC1B,OAAK,uBAAuB,WAAW;AACvC,SAAO,KAAK,eAAe,WAAW;;CAE1C,eAAe,YAAY;EACvB,MAAM,EAAE,UAAU,SAAS,WAAW;AACtC,MAAI,YAAY,OACZ,QAAO,gBAAgB;EAE3B,MAAM,EAAE,qBAAqB;EAC7B,MAAM,aAAa,KAAK;AACxB,mBAAiB,IAAI,YAAY,WAAW;AAC5C,OAAK,mBAAmB,KAAA;AACxB,aAAW,UAAU;AACjB,oBAAiB,OAAO,WAAW;AACnC,QAAK,mBAAmB,KAAA;IAC1B;AACF,SAAO;;CAEX,uBAAuB,YAAY;EAC/B,MAAM,EAAE,UAAU,aAAa,SAAS,WAAW;AACnD,MAAI,SACA,YAAW,MAAM,YAAY;WAExB,OACL,YAAW,UAAU;;CAG7B,eAAe;EACX,MAAM,aAAa,IAAI,gBAAgB,YAAY;AACnD,aAAW,SAAS;AACpB,SAAO;;;AAGf,IAAa,mBAAb,cAAsC,QAAQ;CAC1C;CACA,YAAY,aAAa,QAAQ;AAC7B,SAAO;AACP,OAAK,cAAc;AACnB,OAAK,SAAS;;CAElB,KAAK,OAAO;AACR,OAAK,aAAa,OAAO,MAAM;;CAEnC,MAAM,KAAK;AACP,OAAK,aAAa,QAAQ,IAAI;;CAElC,WAAW;AACP,OAAK,aAAa,YAAY;;;CAGlC,kBAAkB,YAAY;AAC1B,SAAO,KAAK,QAAQ,mBAAmB,KAAK,YAAY,CAAC,UAAU,WAAW,IAAI,gBAAgB;;;AAG1G,IAAa,eAAb,cAAkC,QAAQ;CACtC,QAAQ;CACR,WAAW;CACX,aAAa;;CAEb,uBAAuB,YAAY;EAC/B,MAAM,EAAE,UAAU,UAAU,OAAO,aAAa,SAAS,QAAQ,eAAe;AAChF,MAAI,SACA,YAAW,MAAM,YAAY;WAExB,UAAU,YAAY;AAC3B,eACI,gBAAgB,OAAO,MAAM,WAAW,MAAM,EAAE,GAAG,MAAM,WAAW,KAAK,EAAE,CAAC,CAAC,MAAM;AACvF,cAAW,UAAU;;;CAG7B,KAAK,OAAO;AACR,MAAI,CAAC,KAAK,SAAS;AACf,QAAK,QAAQ,gBAAgB,MAAM,OAAO,aAAa,UAAU;AACjE,QAAK,WAAW;;;CAGxB,MAAM,KAAK;AACP,MAAI,CAAC,KAAK,SAAS;AACf,QAAK,QAAQ,gBAAgB,KAAK,KAAK,aAAa,UAAU;AAC9D,QAAK,WAAW;;;CAGxB,WAAW;EACP,MAAM,EAAE,UAAU,OAAO,eAAe;AACxC,MAAI,CAAC,YAAY;AACb,QAAK,aAAa;AAClB,eACI,gBAAgB,OAAO,MAAM,MAAM,MAAM,EAAE,GAAG,MAAM,MAAM,KAAK,EAAE,CAAC,CAAC,MAAM;AAC7E,SAAM,UAAU"}
|