@fncts/observable 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Action.d.ts +6 -0
- package/AnimationFrameAction.d.ts +11 -0
- package/AnimationFrameScheduler.d.ts +6 -0
- package/AsyncAction.d.ts +19 -0
- package/AsyncScheduler.d.ts +11 -0
- package/BehaviorSubject.d.ts +10 -0
- package/Notification.d.ts +59 -0
- package/Observable/api/connect.d.ts +10 -0
- package/Observable/api/connectable.d.ts +24 -0
- package/Observable/api/fromCallback.d.ts +11 -0
- package/Observable/api/fromEvent.d.ts +4 -0
- package/Observable/api/index.d.ts +14 -0
- package/Observable/api/race.d.ts +9 -0
- package/Observable/api/raceWith.d.ts +6 -0
- package/Observable/api/repeatWhen.d.ts +5 -0
- package/Observable/api/retryWhen.d.ts +10 -0
- package/Observable/api/share.d.ts +16 -0
- package/Observable/api/window.d.ts +8 -0
- package/Observable/api/windowCount.d.ts +6 -0
- package/Observable/api/windowTime.d.ts +12 -0
- package/Observable/api/windowToggle.d.ts +8 -0
- package/Observable/api/windowWhen.d.ts +9 -0
- package/Observable/api.d.ts +668 -0
- package/Observable/definition.d.ts +32 -0
- package/Observable/dom/animationFrames.d.ts +6 -0
- package/Observable/instances.d.ts +1 -0
- package/Observable.d.ts +19 -0
- package/Observer.d.ts +6 -0
- package/Operator.d.ts +19 -0
- package/Scheduler.d.ts +22 -0
- package/Subject.d.ts +48 -0
- package/Subscriber.d.ts +27 -0
- package/Subscription.d.ts +41 -0
- package/_cjs/Action.cjs +27 -0
- package/_cjs/Action.cjs.map +1 -0
- package/_cjs/AnimationFrameAction.cjs +48 -0
- package/_cjs/AnimationFrameAction.cjs.map +1 -0
- package/_cjs/AnimationFrameScheduler.cjs +51 -0
- package/_cjs/AnimationFrameScheduler.cjs.map +1 -0
- package/_cjs/AsyncAction.cjs +116 -0
- package/_cjs/AsyncAction.cjs.map +1 -0
- package/_cjs/AsyncScheduler.cjs +61 -0
- package/_cjs/AsyncScheduler.cjs.map +1 -0
- package/_cjs/BehaviorSubject.cjs +52 -0
- package/_cjs/BehaviorSubject.cjs.map +1 -0
- package/_cjs/Notification.cjs +110 -0
- package/_cjs/Notification.cjs.map +1 -0
- package/_cjs/Observable/api/connect.cjs +35 -0
- package/_cjs/Observable/api/connect.cjs.map +1 -0
- package/_cjs/Observable/api/connectable.cjs +64 -0
- package/_cjs/Observable/api/connectable.cjs.map +1 -0
- package/_cjs/Observable/api/fromCallback.cjs +74 -0
- package/_cjs/Observable/api/fromCallback.cjs.map +1 -0
- package/_cjs/Observable/api/fromEvent.cjs +22 -0
- package/_cjs/Observable/api/fromEvent.cjs.map +1 -0
- package/_cjs/Observable/api/index.cjs +188 -0
- package/_cjs/Observable/api/index.cjs.map +1 -0
- package/_cjs/Observable/api/race.cjs +47 -0
- package/_cjs/Observable/api/race.cjs.map +1 -0
- package/_cjs/Observable/api/raceWith.cjs +24 -0
- package/_cjs/Observable/api/raceWith.cjs.map +1 -0
- package/_cjs/Observable/api/repeatWhen.cjs +72 -0
- package/_cjs/Observable/api/repeatWhen.cjs.map +1 -0
- package/_cjs/Observable/api/retryWhen.cjs +61 -0
- package/_cjs/Observable/api/retryWhen.cjs.map +1 -0
- package/_cjs/Observable/api/share.cjs +115 -0
- package/_cjs/Observable/api/share.cjs.map +1 -0
- package/_cjs/Observable/api/window.cjs +53 -0
- package/_cjs/Observable/api/window.cjs.map +1 -0
- package/_cjs/Observable/api/windowCount.cjs +62 -0
- package/_cjs/Observable/api/windowCount.cjs.map +1 -0
- package/_cjs/Observable/api/windowTime.cjs +90 -0
- package/_cjs/Observable/api/windowTime.cjs.map +1 -0
- package/_cjs/Observable/api/windowToggle.cjs +92 -0
- package/_cjs/Observable/api/windowToggle.cjs.map +1 -0
- package/_cjs/Observable/api/windowWhen.cjs +68 -0
- package/_cjs/Observable/api/windowWhen.cjs.map +1 -0
- package/_cjs/Observable/api.cjs +2558 -0
- package/_cjs/Observable/api.cjs.map +1 -0
- package/_cjs/Observable/definition.cjs +76 -0
- package/_cjs/Observable/definition.cjs.map +1 -0
- package/_cjs/Observable/dom/animationFrames.cjs +51 -0
- package/_cjs/Observable/dom/animationFrames.cjs.map +1 -0
- package/_cjs/Observable/instances.cjs +6 -0
- package/_cjs/Observable/instances.cjs.map +1 -0
- package/_cjs/Observable.cjs +253 -0
- package/_cjs/Observable.cjs.map +1 -0
- package/_cjs/Observer.cjs +6 -0
- package/_cjs/Observer.cjs.map +1 -0
- package/_cjs/Operator.cjs +83 -0
- package/_cjs/Operator.cjs.map +1 -0
- package/_cjs/Scheduler.cjs +62 -0
- package/_cjs/Scheduler.cjs.map +1 -0
- package/_cjs/Subject.cjs +228 -0
- package/_cjs/Subject.cjs.map +1 -0
- package/_cjs/Subscriber.cjs +172 -0
- package/_cjs/Subscriber.cjs.map +1 -0
- package/_cjs/Subscription.cjs +174 -0
- package/_cjs/Subscription.cjs.map +1 -0
- package/_cjs/demo.cjs +40 -0
- package/_cjs/demo.cjs.map +1 -0
- package/_cjs/global.cjs +4 -0
- package/_cjs/global.cjs.map +1 -0
- package/_cjs/index.cjs +65 -0
- package/_cjs/index.cjs.map +1 -0
- package/_cjs/internal/animationFrameProvider.cjs +51 -0
- package/_cjs/internal/animationFrameProvider.cjs.map +1 -0
- package/_cjs/internal/args.cjs +26 -0
- package/_cjs/internal/args.cjs.map +1 -0
- package/_cjs/internal/intervalProvider.cjs +27 -0
- package/_cjs/internal/intervalProvider.cjs.map +1 -0
- package/_cjs/internal/performanceTimestampProvider.cjs +15 -0
- package/_cjs/internal/performanceTimestampProvider.cjs.map +1 -0
- package/_cjs/internal/timeoutProvider.cjs +27 -0
- package/_cjs/internal/timeoutProvider.cjs.map +1 -0
- package/_cjs/internal/timestampProvider.cjs +15 -0
- package/_cjs/internal/timestampProvider.cjs.map +1 -0
- package/_cjs/internal/util.cjs +107 -0
- package/_cjs/internal/util.cjs.map +1 -0
- package/_mjs/Action.mjs +14 -0
- package/_mjs/Action.mjs.map +1 -0
- package/_mjs/AnimationFrameAction.mjs +33 -0
- package/_mjs/AnimationFrameAction.mjs.map +1 -0
- package/_mjs/AnimationFrameScheduler.mjs +36 -0
- package/_mjs/AnimationFrameScheduler.mjs.map +1 -0
- package/_mjs/AsyncAction.mjs +99 -0
- package/_mjs/AsyncAction.mjs.map +1 -0
- package/_mjs/AsyncScheduler.mjs +45 -0
- package/_mjs/AsyncScheduler.mjs.map +1 -0
- package/_mjs/BehaviorSubject.mjs +38 -0
- package/_mjs/BehaviorSubject.mjs.map +1 -0
- package/_mjs/Notification.mjs +80 -0
- package/_mjs/Notification.mjs.map +1 -0
- package/_mjs/Observable/api/connect.mjs +21 -0
- package/_mjs/Observable/api/connect.mjs.map +1 -0
- package/_mjs/Observable/api/connectable.mjs +45 -0
- package/_mjs/Observable/api/connectable.mjs.map +1 -0
- package/_mjs/Observable/api/fromCallback.mjs +60 -0
- package/_mjs/Observable/api/fromCallback.mjs.map +1 -0
- package/_mjs/Observable/api/fromEvent.mjs +10 -0
- package/_mjs/Observable/api/fromEvent.mjs.map +1 -0
- package/_mjs/Observable/api/index.mjs +15 -0
- package/_mjs/Observable/api/index.mjs.map +1 -0
- package/_mjs/Observable/api/race.mjs +32 -0
- package/_mjs/Observable/api/race.mjs.map +1 -0
- package/_mjs/Observable/api/raceWith.mjs +12 -0
- package/_mjs/Observable/api/raceWith.mjs.map +1 -0
- package/_mjs/Observable/api/repeatWhen.mjs +57 -0
- package/_mjs/Observable/api/repeatWhen.mjs.map +1 -0
- package/_mjs/Observable/api/retryWhen.mjs +45 -0
- package/_mjs/Observable/api/retryWhen.mjs.map +1 -0
- package/_mjs/Observable/api/share.mjs +97 -0
- package/_mjs/Observable/api/share.mjs.map +1 -0
- package/_mjs/Observable/api/window.mjs +40 -0
- package/_mjs/Observable/api/window.mjs.map +1 -0
- package/_mjs/Observable/api/windowCount.mjs +50 -0
- package/_mjs/Observable/api/windowCount.mjs.map +1 -0
- package/_mjs/Observable/api/windowTime.mjs +73 -0
- package/_mjs/Observable/api/windowTime.mjs.map +1 -0
- package/_mjs/Observable/api/windowToggle.mjs +77 -0
- package/_mjs/Observable/api/windowToggle.mjs.map +1 -0
- package/_mjs/Observable/api/windowWhen.mjs +54 -0
- package/_mjs/Observable/api/windowWhen.mjs.map +1 -0
- package/_mjs/Observable/api.mjs +2291 -0
- package/_mjs/Observable/api.mjs.map +1 -0
- package/_mjs/Observable/definition.mjs +54 -0
- package/_mjs/Observable/definition.mjs.map +1 -0
- package/_mjs/Observable/dom/animationFrames.mjs +36 -0
- package/_mjs/Observable/dom/animationFrames.mjs.map +1 -0
- package/_mjs/Observable/instances.mjs +2 -0
- package/_mjs/Observable/instances.mjs.map +1 -0
- package/_mjs/Observable.mjs +25 -0
- package/_mjs/Observable.mjs.map +1 -0
- package/_mjs/Observer.mjs +2 -0
- package/_mjs/Observer.mjs.map +1 -0
- package/_mjs/Operator.mjs +63 -0
- package/_mjs/Operator.mjs.map +1 -0
- package/_mjs/Scheduler.mjs +41 -0
- package/_mjs/Scheduler.mjs.map +1 -0
- package/_mjs/Subject.mjs +204 -0
- package/_mjs/Subject.mjs.map +1 -0
- package/_mjs/Subscriber.mjs +147 -0
- package/_mjs/Subscriber.mjs.map +1 -0
- package/_mjs/Subscription.mjs +148 -0
- package/_mjs/Subscription.mjs.map +1 -0
- package/_mjs/demo.mjs +30 -0
- package/_mjs/demo.mjs.map +1 -0
- package/_mjs/global.mjs +2 -0
- package/_mjs/global.mjs.map +1 -0
- package/_mjs/index.mjs +15 -0
- package/_mjs/index.mjs.map +1 -0
- package/_mjs/internal/animationFrameProvider.mjs +38 -0
- package/_mjs/internal/animationFrameProvider.mjs.map +1 -0
- package/_mjs/internal/args.mjs +13 -0
- package/_mjs/internal/args.mjs.map +1 -0
- package/_mjs/internal/intervalProvider.mjs +20 -0
- package/_mjs/internal/intervalProvider.mjs.map +1 -0
- package/_mjs/internal/performanceTimestampProvider.mjs +8 -0
- package/_mjs/internal/performanceTimestampProvider.mjs.map +1 -0
- package/_mjs/internal/timeoutProvider.mjs +20 -0
- package/_mjs/internal/timeoutProvider.mjs.map +1 -0
- package/_mjs/internal/timestampProvider.mjs +8 -0
- package/_mjs/internal/timestampProvider.mjs.map +1 -0
- package/_mjs/internal/util.mjs +76 -0
- package/_mjs/internal/util.mjs.map +1 -0
- package/_src/Action.ts +10 -0
- package/_src/AnimationFrameAction.ts +27 -0
- package/_src/AnimationFrameScheduler.ts +30 -0
- package/_src/AsyncAction.ts +93 -0
- package/_src/AsyncScheduler.ts +41 -0
- package/_src/BehaviorSubject.ts +28 -0
- package/_src/Notification.ts +91 -0
- package/_src/Observable/api/connect.ts +23 -0
- package/_src/Observable/api/connectable.ts +52 -0
- package/_src/Observable/api/fromCallback.ts +57 -0
- package/_src/Observable/api/fromEvent.ts +12 -0
- package/_src/Observable/api/index.ts +14 -0
- package/_src/Observable/api/race.ts +31 -0
- package/_src/Observable/api/raceWith.ts +15 -0
- package/_src/Observable/api/repeatWhen.ts +63 -0
- package/_src/Observable/api/retryWhen.ts +47 -0
- package/_src/Observable/api/share.ts +107 -0
- package/_src/Observable/api/window.ts +44 -0
- package/_src/Observable/api/windowCount.ts +56 -0
- package/_src/Observable/api/windowTime.ts +102 -0
- package/_src/Observable/api/windowToggle.ts +84 -0
- package/_src/Observable/api/windowWhen.ts +59 -0
- package/_src/Observable/api.ts +2749 -0
- package/_src/Observable/definition.ts +69 -0
- package/_src/Observable/dom/animationFrames.ts +33 -0
- package/_src/Observable/instances.ts +106 -0
- package/_src/Observable.ts +27 -0
- package/_src/Observer.ts +5 -0
- package/_src/Operator.ts +73 -0
- package/_src/Scheduler.ts +52 -0
- package/_src/Subject.ts +171 -0
- package/_src/Subscriber.ts +130 -0
- package/_src/Subscription.ts +143 -0
- package/_src/demo.ts +29 -0
- package/_src/global.ts +141 -0
- package/_src/index.ts +14 -0
- package/_src/internal/animationFrameProvider.ts +37 -0
- package/_src/internal/args.ts +11 -0
- package/_src/internal/intervalProvider.ts +27 -0
- package/_src/internal/performanceTimestampProvider.ts +12 -0
- package/_src/internal/timeoutProvider.ts +27 -0
- package/_src/internal/timestampProvider.ts +14 -0
- package/_src/internal/util.ts +94 -0
- package/demo.d.ts +1 -0
- package/global.d.ts +125 -0
- package/index.d.ts +14 -0
- package/internal/animationFrameProvider.d.ts +12 -0
- package/internal/args.d.ts +3 -0
- package/internal/intervalProvider.d.ts +12 -0
- package/internal/performanceTimestampProvider.d.ts +6 -0
- package/internal/timeoutProvider.d.ts +12 -0
- package/internal/timestampProvider.d.ts +7 -0
- package/internal/util.d.ts +28 -0
- package/package.json +16 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
|
|
3
|
+
import * as tsplus_module_1 from "@fncts/observable/Subscription";
|
|
4
|
+
import * as tsplus_module_2 from "@fncts/base/util/predicates";
|
|
5
|
+
import * as tsplus_module_3 from "@fncts/observable/internal/util";
|
|
6
|
+
import * as tsplus_module_4 from "@fncts/base/data/Cause/api";
|
|
7
|
+
export const SubscriberTypeId = /*#__PURE__*/Symbol.for("fncts.observable.Subscriber");
|
|
8
|
+
export class Subscriber extends tsplus_module_1.Subscription {
|
|
9
|
+
constructor(observer) {
|
|
10
|
+
super();
|
|
11
|
+
this[_a] = SubscriberTypeId;
|
|
12
|
+
this.isStopped = false;
|
|
13
|
+
|
|
14
|
+
if (observer) {
|
|
15
|
+
this.observer = observer;
|
|
16
|
+
|
|
17
|
+
if (tsplus_module_1.isSubscription(observer)) {
|
|
18
|
+
observer.add(this);
|
|
19
|
+
}
|
|
20
|
+
} else {
|
|
21
|
+
this.observer = EMPTY_OBSERVER;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
next(value) {
|
|
26
|
+
if (!this.isStopped) {
|
|
27
|
+
this._next(value);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
error(err) {
|
|
32
|
+
if (!this.isStopped) {
|
|
33
|
+
this.isStopped = true;
|
|
34
|
+
|
|
35
|
+
this._error(err);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
complete() {
|
|
40
|
+
if (!this.isStopped) {
|
|
41
|
+
this.isStopped = true;
|
|
42
|
+
|
|
43
|
+
this._complete();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
unsubscribe() {
|
|
48
|
+
if (!this.closed) {
|
|
49
|
+
this.isStopped = true;
|
|
50
|
+
super.unsubscribe();
|
|
51
|
+
this.observer = null;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
_next(value) {
|
|
56
|
+
this.observer.next(value);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
_error(err) {
|
|
60
|
+
try {
|
|
61
|
+
this.observer.error(err);
|
|
62
|
+
} finally {
|
|
63
|
+
this.unsubscribe();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
_complete() {
|
|
68
|
+
try {
|
|
69
|
+
this.observer.complete();
|
|
70
|
+
} finally {
|
|
71
|
+
this.unsubscribe();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
}
|
|
76
|
+
_a = SubscriberTypeId;
|
|
77
|
+
export class SafeSubscriber extends Subscriber {
|
|
78
|
+
constructor(observer) {
|
|
79
|
+
super();
|
|
80
|
+
let next = undefined;
|
|
81
|
+
let error = undefined;
|
|
82
|
+
let complete = undefined;
|
|
83
|
+
|
|
84
|
+
if (tsplus_module_2.isFunction(observer)) {
|
|
85
|
+
next = observer;
|
|
86
|
+
} else if (observer) {
|
|
87
|
+
({
|
|
88
|
+
next,
|
|
89
|
+
error,
|
|
90
|
+
complete
|
|
91
|
+
} = observer);
|
|
92
|
+
next = next?.bind(observer);
|
|
93
|
+
error = error?.bind(observer);
|
|
94
|
+
complete = complete?.bind(observer);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if (error) {
|
|
98
|
+
this.observer = {
|
|
99
|
+
next: next ? wrapDefectHandler(next, error) : tsplus_module_3.noop,
|
|
100
|
+
error: error ? wrapDefectHandler(error, error) : tsplus_module_3.noop,
|
|
101
|
+
complete: complete ? wrapDefectHandler(complete, error) : tsplus_module_3.noop
|
|
102
|
+
};
|
|
103
|
+
} else {
|
|
104
|
+
this.observer = {
|
|
105
|
+
next: next ? wrapThrowHandler(next) : tsplus_module_3.noop,
|
|
106
|
+
error: wrapThrowHandler(error ?? defaultErrorHandler),
|
|
107
|
+
complete: complete ? wrapThrowHandler(complete) : tsplus_module_3.noop
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
function wrapDefectHandler(handler, onDefect) {
|
|
115
|
+
return (...args) => {
|
|
116
|
+
try {
|
|
117
|
+
handler(...args);
|
|
118
|
+
} catch (err) {
|
|
119
|
+
onDefect(tsplus_module_4.halt(err));
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
function wrapThrowHandler(handler) {
|
|
125
|
+
return (...args) => {
|
|
126
|
+
try {
|
|
127
|
+
handler(...args);
|
|
128
|
+
} catch (err) {
|
|
129
|
+
tsplus_module_3.reportUnhandledError(err);
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function defaultErrorHandler(error) {
|
|
135
|
+
throw error;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export const EMPTY_OBSERVER = {
|
|
139
|
+
closed: true,
|
|
140
|
+
next: tsplus_module_3.noop,
|
|
141
|
+
error: defaultErrorHandler,
|
|
142
|
+
complete: tsplus_module_3.noop
|
|
143
|
+
};
|
|
144
|
+
export function isSubscriber(u) {
|
|
145
|
+
return tsplus_module_2.isObject(u) && SubscriberTypeId in u;
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=Subscriber.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Subscriber.mjs","mappings":"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","names":["SubscriberTypeId","Symbol","for","Subscriber","tsplus_module_1","constructor","observer","add","EMPTY_OBSERVER","next","value","isStopped","_next","error","err","_error","complete","_complete","unsubscribe","closed","SafeSubscriber","undefined","tsplus_module_2","bind","wrapDefectHandler","tsplus_module_3","noop","wrapThrowHandler","defaultErrorHandler","handler","onDefect","args","tsplus_module_4","isSubscriber","u"],"sourceRoot":"","sources":["../_src/Subscriber.ts"],"sourcesContent":[null]}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
var _a, _b;
|
|
2
|
+
|
|
3
|
+
import * as tsplus_module_1 from "@fncts/base/util/predicates";
|
|
4
|
+
export const SubscriptionTypeId = /*#__PURE__*/Symbol.for("@fncts/observable/Subscription");
|
|
5
|
+
/**
|
|
6
|
+
* @tsplus type fncts.observable.Subscription
|
|
7
|
+
* @tsplus companion fncts.observable.SubscriptionOps
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export class Subscription {
|
|
11
|
+
constructor(initialFinalizer) {
|
|
12
|
+
this.initialFinalizer = initialFinalizer;
|
|
13
|
+
this[_a] = SubscriptionTypeId;
|
|
14
|
+
this.closed = false;
|
|
15
|
+
this.finalizers = null;
|
|
16
|
+
this.parents = null;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
unsubscribe() {
|
|
20
|
+
let errors;
|
|
21
|
+
|
|
22
|
+
if (!this.closed) {
|
|
23
|
+
this.closed = true;
|
|
24
|
+
const {
|
|
25
|
+
parents,
|
|
26
|
+
initialFinalizer,
|
|
27
|
+
finalizers
|
|
28
|
+
} = this;
|
|
29
|
+
|
|
30
|
+
if (parents) {
|
|
31
|
+
this.parents = null;
|
|
32
|
+
|
|
33
|
+
for (const parent of parents) {
|
|
34
|
+
parent.remove(this);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (initialFinalizer) {
|
|
39
|
+
try {
|
|
40
|
+
initialFinalizer();
|
|
41
|
+
} catch (e) {
|
|
42
|
+
errors = isUnsubscribeError(e) ? e.errors : [e];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if (finalizers) {
|
|
47
|
+
this.finalizers = null;
|
|
48
|
+
|
|
49
|
+
for (const finalizer of finalizers) {
|
|
50
|
+
try {
|
|
51
|
+
executeFinalizer(finalizer);
|
|
52
|
+
} catch (e) {
|
|
53
|
+
errors || (errors = []);
|
|
54
|
+
|
|
55
|
+
if (isUnsubscribeError(e)) {
|
|
56
|
+
errors.push(...e.errors);
|
|
57
|
+
} else {
|
|
58
|
+
errors.push(e);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
if (errors) {
|
|
66
|
+
throw new UnsubscribeError(errors);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
add(finalizer) {
|
|
71
|
+
if (finalizer && finalizer !== this) {
|
|
72
|
+
if (this.closed) {
|
|
73
|
+
executeFinalizer(finalizer);
|
|
74
|
+
} else {
|
|
75
|
+
if (isSubscription(finalizer)) {
|
|
76
|
+
if (finalizer.closed || finalizer.hasParent(this)) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
finalizer.addParent(this);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if (!this.finalizers) {
|
|
84
|
+
this.finalizers = new Set();
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
this.finalizers.add(finalizer);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
hasParent(parent) {
|
|
93
|
+
const parentage = this.parents;
|
|
94
|
+
return parentage ? parentage.has(parent) : false;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
addParent(parent) {
|
|
98
|
+
if (!this.parents) {
|
|
99
|
+
this.parents = new Set();
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
this.parents.add(parent);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
removeParent(parent) {
|
|
106
|
+
this.parents?.delete(parent);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
remove(finalizer) {
|
|
110
|
+
this.finalizers?.delete(finalizer);
|
|
111
|
+
|
|
112
|
+
if (isSubscription(finalizer)) {
|
|
113
|
+
finalizer.removeParent(this);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
}
|
|
118
|
+
_a = SubscriptionTypeId;
|
|
119
|
+
export function isSubscription(u) {
|
|
120
|
+
return tsplus_module_1.isObject(u) && SubscriptionTypeId in u;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function executeFinalizer(finalizer) {
|
|
124
|
+
return finalizer && ("unsubscribe" in finalizer ? finalizer.unsubscribe() : finalizer());
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* @tsplus static fncts.observable.SubscriptionOps empty
|
|
128
|
+
*/
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
export const EMPTY_SUBSCRIPTION = /*#__PURE__*/(() => {
|
|
132
|
+
const empty = /*#__PURE__*/new Subscription();
|
|
133
|
+
empty.closed = true;
|
|
134
|
+
return empty;
|
|
135
|
+
})();
|
|
136
|
+
export const UnsubscribeErrorTypeId = /*#__PURE__*/Symbol.for("@principia/observable/UnsubscribeError");
|
|
137
|
+
export class UnsubscribeError {
|
|
138
|
+
constructor(errors) {
|
|
139
|
+
this.errors = errors;
|
|
140
|
+
this[_b] = UnsubscribeErrorTypeId;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
}
|
|
144
|
+
_b = UnsubscribeErrorTypeId;
|
|
145
|
+
export function isUnsubscribeError(u) {
|
|
146
|
+
return tsplus_module_1.isObject(u) && UnsubscribeErrorTypeId in u;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=Subscription.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Subscription.mjs","mappings":"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","names":["SubscriptionTypeId","Symbol","for","Subscription","constructor","initialFinalizer","unsubscribe","errors","closed","parents","finalizers","parent","remove","e","isUnsubscribeError","finalizer","executeFinalizer","push","UnsubscribeError","add","isSubscription","hasParent","addParent","Set","parentage","has","removeParent","delete","u","tsplus_module_1","EMPTY_SUBSCRIPTION","empty","UnsubscribeErrorTypeId"],"sourceRoot":"","sources":["../_src/Subscription.ts"],"sourcesContent":[null]}
|
package/_mjs/demo.mjs
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as tsplus_module_1 from "@fncts/observable/Observable";
|
|
2
|
+
import * as tsplus_module_2 from "@fncts/base/data/Cause/api";
|
|
3
|
+
import * as tsplus_module_3 from "@fncts/observable/Observable/api/share";
|
|
4
|
+
import * as tsplus_module_4 from "@fncts/observable/Observable/api/window";
|
|
5
|
+
const x = /*#__PURE__*/new tsplus_module_1.Observable(subscriber => {
|
|
6
|
+
setInterval(() => {
|
|
7
|
+
subscriber.next(undefined);
|
|
8
|
+
}, 1000);
|
|
9
|
+
});
|
|
10
|
+
tsplus_module_4.window_(tsplus_module_3.share_(new tsplus_module_1.Observable(subscriber => {
|
|
11
|
+
let i = 0;
|
|
12
|
+
const handle = setInterval(() => {
|
|
13
|
+
if (i === 100) {
|
|
14
|
+
subscriber.error(tsplus_module_2.fail("lmao"));
|
|
15
|
+
} else {
|
|
16
|
+
subscriber.next(i++);
|
|
17
|
+
}
|
|
18
|
+
}, 100);
|
|
19
|
+
subscriber.add(() => {
|
|
20
|
+
clearInterval(handle);
|
|
21
|
+
});
|
|
22
|
+
})), x).subscribe({
|
|
23
|
+
next: value => {
|
|
24
|
+
value.subscribe(console.log.bind(console));
|
|
25
|
+
},
|
|
26
|
+
error: cause => {
|
|
27
|
+
console.log(cause);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=demo.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo.mjs","mappings":";;;;AAAA,MAAMA,CAAC,gBAAG,oBAAIC,UAAJ,CAA6BC,UAAD,IAAe;EACnDC,WAAW,CAAC,MAAK;IACfD,UAAU,CAACE,IAAX,CAAgBC,SAAhB;EACD,CAFU,EAER,IAFQ,CAAX;AAGD,CAJS,CAAV;AAMAC,mEAAIL,UAAJ,CAAgCC,UAAD,IAAe;EAC5C,IAAIK,CAAC,GAAU,CAAf;EACA,MAAMC,MAAM,GAAGL,WAAW,CAAC,MAAK;IAC9B,IAAII,CAAC,KAAK,GAAV,EAAe;MACbL,UAAU,CAACO,KAAX,CAAiBC,qBAAW,MAAX,CAAjB;IACD,CAFD,MAEO;MACLR,UAAU,CAACE,IAAX,CAAgBG,CAAC,EAAjB;IACD;EACF,CANyB,EAMvB,GANuB,CAA1B;EAOAL,UAAU,CAACS,GAAX,CAAe,MAAK;IAClBC,aAAa,CAACJ,MAAD,CAAb;EACD,CAFD;AAGD,CAZD,IAcUR,CAdV,EAeGa,SAfH,CAea;EACTT,IAAI,EAAGU,KAAD,IAAU;IACdA,KAAK,CAACD,SAAN,CAAgBE,OAAO,CAACC,GAAR,CAAYC,IAAZ,CAAiBF,OAAjB,CAAhB;EACD,CAHQ;EAITN,KAAK,EAAGS,KAAD,IAAU;IACfH,OAAO,CAACC,GAAR,CAAYE,KAAZ;EACD;AANQ,CAfb","names":["x","Observable","subscriber","setInterval","next","undefined","tsplus_module_4","i","handle","error","tsplus_module_2","add","clearInterval","subscribe","value","console","log","bind","cause"],"sourceRoot":"","sources":["../_src/demo.ts"],"sourcesContent":[null]}
|
package/_mjs/global.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global.mjs","mappings":"AAAA,OAAO,mBAAP","names":[],"sourceRoot":"","sources":["../_src/global.ts"],"sourcesContent":[null]}
|
package/_mjs/index.mjs
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * as action from "@fncts/observable/Action";
|
|
2
|
+
export * as animationFrameAction from "@fncts/observable/AnimationFrameAction";
|
|
3
|
+
export * as animationFrameScheduler from "@fncts/observable/AnimationFrameScheduler";
|
|
4
|
+
export * as asyncAction from "@fncts/observable/AsyncAction";
|
|
5
|
+
export * as asyncScheduler from "@fncts/observable/AsyncScheduler";
|
|
6
|
+
export * as behaviorSubject from "@fncts/observable/BehaviorSubject";
|
|
7
|
+
export * as observable from "@fncts/observable/Observable";
|
|
8
|
+
export * as notification from "@fncts/observable/Observable";
|
|
9
|
+
export * as observer from "@fncts/observable/Observer";
|
|
10
|
+
export * as operator from "@fncts/observable/Operator";
|
|
11
|
+
export * as scheduler from "@fncts/observable/Scheduler";
|
|
12
|
+
export * as subject from "@fncts/observable/Subject";
|
|
13
|
+
export * as subscriber from "@fncts/observable/Subscriber";
|
|
14
|
+
export * as subscription from "@fncts/observable/Subscription";
|
|
15
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","mappings":"AAAA,OAAO,KAAKA,MAAZ,MAAwB,0BAAxB;AACA,OAAO,KAAKC,oBAAZ,MAAsC,wCAAtC;AACA,OAAO,KAAKC,uBAAZ,MAAyC,2CAAzC;AACA,OAAO,KAAKC,WAAZ,MAA6B,+BAA7B;AACA,OAAO,KAAKC,cAAZ,MAAgC,kCAAhC;AACA,OAAO,KAAKC,eAAZ,MAAiC,mCAAjC;AACA,OAAO,KAAKC,UAAZ,MAA4B,8BAA5B;AACA,OAAO,KAAKC,YAAZ,MAA8B,8BAA9B;AACA,OAAO,KAAKC,QAAZ,MAA0B,4BAA1B;AACA,OAAO,KAAKC,QAAZ,MAA0B,4BAA1B;AACA,OAAO,KAAKC,SAAZ,MAA2B,6BAA3B;AACA,OAAO,KAAKC,OAAZ,MAAyB,2BAAzB;AACA,OAAO,KAAKC,UAAZ,MAA4B,8BAA5B;AACA,OAAO,KAAKC,YAAZ,MAA8B,gCAA9B","names":["action","animationFrameAction","animationFrameScheduler","asyncAction","asyncScheduler","behaviorSubject","observable","notification","observer","operator","scheduler","subject","subscriber","subscription"],"sourceRoot":"","sources":["../_src/index.ts"],"sourcesContent":[null]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as tsplus_module_1 from "@fncts/observable/Subscription";
|
|
2
|
+
export const animationFrameProvider = {
|
|
3
|
+
schedule(callback) {
|
|
4
|
+
let request = requestAnimationFrame;
|
|
5
|
+
let cancel = cancelAnimationFrame;
|
|
6
|
+
const {
|
|
7
|
+
delegate
|
|
8
|
+
} = animationFrameProvider;
|
|
9
|
+
|
|
10
|
+
if (delegate) {
|
|
11
|
+
request = delegate.requestAnimationFrame;
|
|
12
|
+
cancel = delegate.cancelAnimationFrame;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const handle = request(timestamp => {
|
|
16
|
+
cancel = undefined;
|
|
17
|
+
callback(timestamp);
|
|
18
|
+
});
|
|
19
|
+
return new tsplus_module_1.Subscription(() => cancel?.(handle));
|
|
20
|
+
},
|
|
21
|
+
|
|
22
|
+
requestAnimationFrame(...args) {
|
|
23
|
+
const {
|
|
24
|
+
delegate
|
|
25
|
+
} = animationFrameProvider;
|
|
26
|
+
return (delegate?.requestAnimationFrame || requestAnimationFrame)(...args);
|
|
27
|
+
},
|
|
28
|
+
|
|
29
|
+
cancelAnimationFrame(...args) {
|
|
30
|
+
const {
|
|
31
|
+
delegate
|
|
32
|
+
} = animationFrameProvider;
|
|
33
|
+
return (delegate?.cancelAnimationFrame || cancelAnimationFrame)(...args);
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
delegate: undefined
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=animationFrameProvider.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animationFrameProvider.mjs","mappings":";AAYA,OAAO,MAAMA,sBAAsB,GAA2B;EAC5DC,QAAQ,CAACC,QAAD,EAAS;IACf,IAAIC,OAAO,GAAGC,qBAAd;IACA,IAAIC,MAAM,GAAiDC,oBAA3D;IACA,MAAM;MAAEC;IAAF,IAAeP,sBAArB;;IACA,IAAIO,QAAJ,EAAc;MACZJ,OAAO,GAAGI,QAAQ,CAACH,qBAAnB;MACAC,MAAM,GAAIE,QAAQ,CAACD,oBAAnB;IACD;;IACD,MAAME,MAAM,GAAGL,OAAO,CAAEM,SAAD,IAAc;MACnCJ,MAAM,GAAGK,SAAT;MACAR,QAAQ,CAACO,SAAD,CAAR;IACD,CAHqB,CAAtB;IAIA,OAAO,oBAAIE,YAAJ,CAAiB,MAAMN,MAAM,GAAGG,MAAH,CAA7B,CAAP;EACD,CAd2D;;EAe5DJ,qBAAqB,CAAC,GAAGQ,IAAJ,EAAQ;IAC3B,MAAM;MAAEL;IAAF,IAAeP,sBAArB;IACA,OAAO,CAACO,QAAQ,EAAEH,qBAAV,IAAmCA,qBAApC,EAA2D,GAAGQ,IAA9D,CAAP;EACD,CAlB2D;;EAmB5DN,oBAAoB,CAAC,GAAGM,IAAJ,EAAQ;IAC1B,MAAM;MAAEL;IAAF,IAAeP,sBAArB;IACA,OAAO,CAACO,QAAQ,EAAED,oBAAV,IAAkCA,oBAAnC,EAAyD,GAAGM,IAA5D,CAAP;EACD,CAtB2D;;EAuB5DL,QAAQ,EAAEG;AAvBkD,CAAvD","names":["animationFrameProvider","schedule","callback","request","requestAnimationFrame","cancel","cancelAnimationFrame","delegate","handle","timestamp","undefined","Subscription","args"],"sourceRoot":"","sources":["../../_src/internal/animationFrameProvider.ts"],"sourcesContent":[null]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as tsplus_module_1 from "@fncts/observable/Scheduler";
|
|
2
|
+
|
|
3
|
+
function last(arr) {
|
|
4
|
+
return arr[arr.length - 1];
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export function popNumber(args, defaultValue) {
|
|
8
|
+
return typeof last(args) === "number" ? args.pop() : defaultValue;
|
|
9
|
+
}
|
|
10
|
+
export function popScheduler(args) {
|
|
11
|
+
return tsplus_module_1.isScheduler(last(args)) ? args.pop() : undefined;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=args.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.mjs","mappings":";;AAAA,SAASA,IAAT,CAAiBC,GAAjB,EAAyB;EACvB,OAAOA,GAAG,CAACA,GAAG,CAACC,MAAJ,GAAa,CAAd,CAAV;AACD;;AAED,OAAM,SAAUC,SAAV,CAAoBC,IAApB,EAAiCC,YAAjC,EAAqD;EACzD,OAAO,OAAOL,IAAI,CAACI,IAAD,CAAX,KAAsB,QAAtB,GAAiCA,IAAI,CAACE,GAAL,EAAjC,GAA+CD,YAAtD;AACD;AAED,OAAM,SAAUE,YAAV,CAAuBH,IAAvB,EAAkC;EACtC,OAAOI,4BAAYR,IAAI,CAACI,IAAD,CAAhB,IAA0BA,IAAI,CAACE,GAAL,EAA1B,GAAuCG,SAA9C;AACD","names":["last","arr","length","popNumber","args","defaultValue","pop","popScheduler","tsplus_module_1","undefined"],"sourceRoot":"","sources":["../../_src/internal/args.ts"],"sourcesContent":[null]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const intervalProvider = {
|
|
2
|
+
// When accessing the delegate, use the variable rather than `this` so that
|
|
3
|
+
// the functions can be called without being bound to the provider.
|
|
4
|
+
setInterval(...args) {
|
|
5
|
+
const {
|
|
6
|
+
delegate
|
|
7
|
+
} = intervalProvider;
|
|
8
|
+
return (delegate?.setInterval || setInterval)(...args);
|
|
9
|
+
},
|
|
10
|
+
|
|
11
|
+
clearInterval(handle) {
|
|
12
|
+
const {
|
|
13
|
+
delegate
|
|
14
|
+
} = intervalProvider;
|
|
15
|
+
return (delegate?.clearInterval || clearInterval)(handle);
|
|
16
|
+
},
|
|
17
|
+
|
|
18
|
+
delegate: undefined
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=intervalProvider.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intervalProvider.mjs","mappings":"AAcA,OAAO,MAAMA,gBAAgB,GAAqB;EAChD;EACA;EACAC,WAAW,CAAC,GAAGC,IAAJ,EAAQ;IACjB,MAAM;MAAEC;IAAF,IAAeH,gBAArB;IACA,OAAO,CAACG,QAAQ,EAAEF,WAAV,IAAyBA,WAA1B,EAAuC,GAAGC,IAA1C,CAAP;EACD,CAN+C;;EAOhDE,aAAa,CAACC,MAAD,EAAO;IAClB,MAAM;MAAEF;IAAF,IAAeH,gBAArB;IACA,OAAO,CAACG,QAAQ,EAAEC,aAAV,IAA2BA,aAA5B,EAA2CC,MAA3C,CAAP;EACD,CAV+C;;EAWhDF,QAAQ,EAAEG;AAXsC,CAA3C","names":["intervalProvider","setInterval","args","delegate","clearInterval","handle","undefined"],"sourceRoot":"","sources":["../../_src/internal/intervalProvider.ts"],"sourcesContent":[null]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performanceTimestampProvider.mjs","mappings":"AAMA,OAAO,MAAMA,4BAA4B,GAAiC;EACxEC,GAAG;IACD,OAAO,CAACD,4BAA4B,CAACE,QAA7B,IAAyCC,WAA1C,EAAuDF,GAAvD,EAAP;EACD,CAHuE;;EAIxEC,QAAQ,EAAEE;AAJ8D,CAAnE","names":["performanceTimestampProvider","now","delegate","performance","undefined"],"sourceRoot":"","sources":["../../_src/internal/performanceTimestampProvider.ts"],"sourcesContent":[null]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const timeoutProvider = {
|
|
2
|
+
// When accessing the delegate, use the variable rather than `this` so that
|
|
3
|
+
// the functions can be called without being bound to the provider.
|
|
4
|
+
setTimeout(...args) {
|
|
5
|
+
const {
|
|
6
|
+
delegate
|
|
7
|
+
} = timeoutProvider;
|
|
8
|
+
return (delegate?.setTimeout || setTimeout)(...args);
|
|
9
|
+
},
|
|
10
|
+
|
|
11
|
+
clearTimeout(handle) {
|
|
12
|
+
const {
|
|
13
|
+
delegate
|
|
14
|
+
} = timeoutProvider;
|
|
15
|
+
return (delegate?.clearTimeout || clearTimeout)(handle);
|
|
16
|
+
},
|
|
17
|
+
|
|
18
|
+
delegate: undefined
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=timeoutProvider.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeoutProvider.mjs","mappings":"AAcA,OAAO,MAAMA,eAAe,GAAoB;EAC9C;EACA;EACAC,UAAU,CAAC,GAAGC,IAAJ,EAAQ;IAChB,MAAM;MAAEC;IAAF,IAAeH,eAArB;IACA,OAAO,CAACG,QAAQ,EAAEF,UAAV,IAAwBA,UAAzB,EAAqC,GAAGC,IAAxC,CAAP;EACD,CAN6C;;EAO9CE,YAAY,CAACC,MAAD,EAAO;IACjB,MAAM;MAAEF;IAAF,IAAeH,eAArB;IACA,OAAO,CAACG,QAAQ,EAAEC,YAAV,IAA0BA,YAA3B,EAAyCC,MAAzC,CAAP;EACD,CAV6C;;EAW9CF,QAAQ,EAAEG;AAXoC,CAAzC","names":["timeoutProvider","setTimeout","args","delegate","clearTimeout","handle","undefined"],"sourceRoot":"","sources":["../../_src/internal/timeoutProvider.ts"],"sourcesContent":[null]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timestampProvider.mjs","mappings":"AAQA,OAAO,MAAMA,qBAAqB,GAA0B;EAC1DC,GAAG;IACD,OAAO,CAACD,qBAAqB,CAACE,QAAtB,IAAkCC,IAAnC,EAAyCF,GAAzC,EAAP;EACD,CAHyD;;EAI1DC,QAAQ,EAAEE;AAJgD,CAArD","names":["dateTimestampProvider","now","delegate","Date","undefined"],"sourceRoot":"","sources":["../../_src/internal/timestampProvider.ts"],"sourcesContent":[null]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import * as tsplus_module_1 from "@fncts/base/util/predicates";
|
|
2
|
+
import * as tsplus_module_2 from "@fncts/observable/internal/timeoutProvider";
|
|
3
|
+
export function arrayRemove(arr, item) {
|
|
4
|
+
if (arr) {
|
|
5
|
+
const index = arr.indexOf(item);
|
|
6
|
+
0 <= index && arr.splice(index, 1);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export function noop() {// noop
|
|
10
|
+
}
|
|
11
|
+
export function isAsyncIterable(u) {
|
|
12
|
+
return Symbol.asyncIterator && tsplus_module_1.isFunction(u?.[Symbol.asyncIterator]);
|
|
13
|
+
}
|
|
14
|
+
export function isArrayLike(u) {
|
|
15
|
+
return u != null && typeof u.length === "number" && typeof u !== "function";
|
|
16
|
+
}
|
|
17
|
+
export function isPromiseLike(u) {
|
|
18
|
+
return tsplus_module_1.isFunction(u?.then);
|
|
19
|
+
}
|
|
20
|
+
export function isValidDate(u) {
|
|
21
|
+
return tsplus_module_1.isDate(u) && !isNaN(u);
|
|
22
|
+
}
|
|
23
|
+
export function reportUnhandledError(err) {
|
|
24
|
+
return tsplus_module_2.timeoutProvider.setTimeout(() => {
|
|
25
|
+
throw err;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
export function arrayOrObject(args) {
|
|
29
|
+
if (args.length === 1) {
|
|
30
|
+
const first = args[0];
|
|
31
|
+
|
|
32
|
+
if (Array.isArray(first)) {
|
|
33
|
+
return {
|
|
34
|
+
args: first,
|
|
35
|
+
keys: null
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (tsplus_module_1.isPlain(first)) {
|
|
40
|
+
const keys = Object.keys(first);
|
|
41
|
+
return {
|
|
42
|
+
args: Object.values(first),
|
|
43
|
+
keys
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return {
|
|
49
|
+
args: args,
|
|
50
|
+
keys: null
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export async function* readableStreamToAsyncGenerator(readableStream) {
|
|
54
|
+
const reader = readableStream.getReader();
|
|
55
|
+
|
|
56
|
+
try {
|
|
57
|
+
while (true) {
|
|
58
|
+
const {
|
|
59
|
+
value,
|
|
60
|
+
done
|
|
61
|
+
} = await reader.read();
|
|
62
|
+
|
|
63
|
+
if (done) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
yield value;
|
|
68
|
+
}
|
|
69
|
+
} finally {
|
|
70
|
+
reader.releaseLock();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
export function isReadableStream(u) {
|
|
74
|
+
return tsplus_module_1.isFunction(u?.getReader);
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=util.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.mjs","mappings":";;AAAA,OAAM,SAAUA,WAAV,CAAyBC,GAAzB,EAAsDC,IAAtD,EAA6D;EACjE,IAAID,GAAJ,EAAS;IACP,MAAME,KAAK,GAAGF,GAAG,CAACG,OAAJ,CAAYF,IAAZ,CAAd;IACA,KAAKC,KAAL,IAAcF,GAAG,CAACI,MAAJ,CAAWF,KAAX,EAAkB,CAAlB,CAAd;EACD;AACF;AAED,OAAM,SAAUG,IAAV,GAAc,CAClB;AACD;AAED,OAAM,SAAUC,eAAV,CAA0BC,CAA1B,EAAgC;EACpC,OAAOC,MAAM,CAACC,aAAP,IAAwBC,2BAAWH,CAAC,GAAGC,MAAM,CAACC,aAAV,CAAZ,CAA/B;AACD;AAED,OAAM,SAAUE,WAAV,CAAsBJ,CAAtB,EAA4B;EAChC,OAAOA,CAAC,IAAI,IAAL,IAAa,OAAOA,CAAC,CAACK,MAAT,KAAoB,QAAjC,IAA6C,OAAOL,CAAP,KAAa,UAAjE;AACD;AAED,OAAM,SAAUM,aAAV,CAAwBN,CAAxB,EAA8B;EAClC,OAAOG,2BAAWH,CAAC,EAAEO,IAAd,CAAP;AACD;AAED,OAAM,SAAUC,WAAV,CAAsBR,CAAtB,EAAgC;EACpC,OAAOG,uBAAOH,CAAP,KAAa,CAACS,KAAK,CAACT,CAAD,CAA1B;AACD;AAED,OAAM,SAAUU,oBAAV,CAA+BC,GAA/B,EAA2C;EAC/C,OAAOC,gCAAgBC,UAAhB,CAA2B,MAAK;IACrC,MAAMF,GAAN;EACD,CAFM,CAAP;AAGD;AAED,OAAM,SAAUG,aAAV,CACJC,IADI,EAC6C;EAEjD,IAAIA,IAAI,CAACV,MAAL,KAAgB,CAApB,EAAuB;IACrB,MAAMW,KAAK,GAAGD,IAAI,CAAC,CAAD,CAAlB;;IACA,IAAIE,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAJ,EAA0B;MACxB,OAAO;QAAED,IAAI,EAAEC,KAAR;QAAeG,IAAI,EAAE;MAArB,CAAP;IACD;;IACD,IAAIhB,wBAAQa,KAAR,CAAJ,EAAoB;MAClB,MAAMG,IAAI,GAAGC,MAAM,CAACD,IAAP,CAAYH,KAAZ,CAAb;MACA,OAAO;QACLD,IAAI,EAAEK,MAAM,CAACC,MAAP,CAAcL,KAAd,CADD;QAELG;MAFK,CAAP;IAID;EACF;;EAED,OAAO;IAAEJ,IAAI,EAAEA,IAAR;IAAkCI,IAAI,EAAE;EAAxC,CAAP;AACD;AAuBD,OAAO,gBAAgBG,8BAAhB,CAAkDC,cAAlD,EAAuF;EAC5F,MAAMC,MAAM,GAAGD,cAAc,CAACE,SAAf,EAAf;;EACA,IAAI;IACF,OAAO,IAAP,EAAa;MACX,MAAM;QAAEC,KAAF;QAASC;MAAT,IAAkB,MAAMH,MAAM,CAACI,IAAP,EAA9B;;MACA,IAAID,IAAJ,EAAU;QACR;MACD;;MACD,MAAMD,KAAN;IACD;EACF,CARD,SAQU;IACRF,MAAM,CAACK,WAAP;EACD;AACF;AAED,OAAM,SAAUC,gBAAV,CAA8B9B,CAA9B,EAAoC;EACxC,OAAOG,2BAAWH,CAAC,EAAEyB,SAAd,CAAP;AACD","names":["arrayRemove","arr","item","index","indexOf","splice","noop","isAsyncIterable","u","Symbol","asyncIterator","tsplus_module_1","isArrayLike","length","isPromiseLike","then","isValidDate","isNaN","reportUnhandledError","err","tsplus_module_2","setTimeout","arrayOrObject","args","first","Array","isArray","keys","Object","values","readableStreamToAsyncGenerator","readableStream","reader","getReader","value","done","read","releaseLock","isReadableStream"],"sourceRoot":"","sources":["../../_src/internal/util.ts"],"sourcesContent":[null]}
|
package/_src/Action.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
+
export class Action<A> extends Subscription {
|
|
3
|
+
constructor(scheduler: Scheduler, work: (this: SchedulerAction<A>, state?: A) => void) {
|
|
4
|
+
super();
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
public schedule(state?: A, delay = 0): Subscription {
|
|
8
|
+
return this;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export class AnimationFrameAction<A> extends AsyncAction<A> {
|
|
2
|
+
constructor(
|
|
3
|
+
protected scheduler: AnimationFrameScheduler,
|
|
4
|
+
protected work: (this: SchedulerAction<A>, state?: A) => void,
|
|
5
|
+
) {
|
|
6
|
+
super(scheduler, work);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
protected requestAsyncId(scheduler: AnimationFrameScheduler, delay = 0): any {
|
|
10
|
+
if (delay != null && delay > 0) {
|
|
11
|
+
return super.requestAsyncId(scheduler, delay);
|
|
12
|
+
}
|
|
13
|
+
scheduler.actions.push(this);
|
|
14
|
+
return (scheduler.scheduled ||= animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: any, delay = 0): any {
|
|
18
|
+
if ((delay != null && delay > 0) || (delay == null && this.delay! > 0)) {
|
|
19
|
+
super.recycleAsyncId(scheduler, delay);
|
|
20
|
+
}
|
|
21
|
+
if (scheduler.actions.length === 0) {
|
|
22
|
+
animationFrameProvider.cancelAnimationFrame(id);
|
|
23
|
+
scheduler.scheduled = undefined;
|
|
24
|
+
}
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
}
|