evg_observable 1.1.31 → 1.1.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/package.json
CHANGED
package/src/outLib/Collector.js
CHANGED
|
@@ -19,7 +19,7 @@ class Collector {
|
|
|
19
19
|
if (this._isDestroyed)
|
|
20
20
|
return null;
|
|
21
21
|
subscriptionLike && subscriptionLike.unsubscribe();
|
|
22
|
-
|
|
22
|
+
FunctionLibs_1.deleteFromArray(this.list, subscriptionLike);
|
|
23
23
|
}
|
|
24
24
|
unsubscribeAll() {
|
|
25
25
|
if (this._isDestroyed)
|
|
@@ -11,7 +11,8 @@ export declare class SubscribeObject<T> implements ISubscribeObject<T>, IMarkedF
|
|
|
11
11
|
private emitByNegativeCondition;
|
|
12
12
|
private emitByPositiveCondition;
|
|
13
13
|
private emitMatchCondition;
|
|
14
|
-
|
|
14
|
+
protected isPipe: boolean;
|
|
15
|
+
constructor(observable?: IObserver<T>, listener?: IListener<T>, isPipe?: boolean);
|
|
15
16
|
private static callbackSend;
|
|
16
17
|
subscribe(listener: IListener<T>): ISubscriptionLike<T>;
|
|
17
18
|
unsubscribe(): void;
|
package/src/outLib/Observable.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Observable = exports.SubscribeObject = void 0;
|
|
4
4
|
const FunctionLibs_1 = require("./FunctionLibs");
|
|
5
5
|
class SubscribeObject {
|
|
6
|
-
constructor(observable, listener) {
|
|
6
|
+
constructor(observable, listener, isPipe) {
|
|
7
7
|
this.isMarkedForUnsubscribe = false;
|
|
8
8
|
this._order = 0;
|
|
9
9
|
this.isListenPaused = false;
|
|
@@ -13,22 +13,26 @@ class SubscribeObject {
|
|
|
13
13
|
this.emitByNegativeCondition = null;
|
|
14
14
|
this.emitByPositiveCondition = null;
|
|
15
15
|
this.emitMatchCondition = null;
|
|
16
|
+
this.isPipe = false;
|
|
16
17
|
this.observable = observable;
|
|
17
18
|
this.listener = listener;
|
|
19
|
+
this.isPipe = !!isPipe;
|
|
18
20
|
}
|
|
19
21
|
static callbackSend(value, subsObj) {
|
|
20
22
|
const listener = subsObj.listener;
|
|
23
|
+
if (!listener || !subsObj.observable) {
|
|
24
|
+
subsObj.unsubscribe();
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
21
27
|
switch (true) {
|
|
22
|
-
case !subsObj.observable:
|
|
23
|
-
case !listener:
|
|
24
|
-
subsObj.unsubscribe();
|
|
25
|
-
return;
|
|
26
28
|
case subsObj.isListenPaused:
|
|
27
|
-
;
|
|
29
|
+
return;
|
|
30
|
+
case !subsObj.isPipe:
|
|
31
|
+
listener(value);
|
|
28
32
|
return;
|
|
29
33
|
case subsObj.once.isOnce:
|
|
30
34
|
subsObj.once.isFinished = true;
|
|
31
|
-
listener
|
|
35
|
+
listener(value);
|
|
32
36
|
subsObj.unsubscribe();
|
|
33
37
|
break;
|
|
34
38
|
case !!subsObj.unsubscribeByNegativeCondition:
|
|
@@ -37,7 +41,7 @@ class SubscribeObject {
|
|
|
37
41
|
subsObj.unsubscribe();
|
|
38
42
|
return;
|
|
39
43
|
}
|
|
40
|
-
listener
|
|
44
|
+
listener(value);
|
|
41
45
|
break;
|
|
42
46
|
case !!subsObj.unsubscribeByPositiveCondition:
|
|
43
47
|
if (subsObj.unsubscribeByPositiveCondition()) {
|
|
@@ -45,19 +49,17 @@ class SubscribeObject {
|
|
|
45
49
|
subsObj.unsubscribe();
|
|
46
50
|
return;
|
|
47
51
|
}
|
|
48
|
-
listener
|
|
52
|
+
listener(value);
|
|
49
53
|
break;
|
|
50
54
|
case !!subsObj.emitByNegativeCondition:
|
|
51
|
-
!subsObj.emitByNegativeCondition() && listener
|
|
55
|
+
!subsObj.emitByNegativeCondition() && listener(value);
|
|
52
56
|
break;
|
|
53
57
|
case !!subsObj.emitByPositiveCondition:
|
|
54
|
-
subsObj.emitByPositiveCondition() && listener
|
|
58
|
+
subsObj.emitByPositiveCondition() && listener(value);
|
|
55
59
|
break;
|
|
56
60
|
case !!subsObj.emitMatchCondition:
|
|
57
|
-
(subsObj.emitMatchCondition() === value) && listener
|
|
61
|
+
(subsObj.emitMatchCondition() === value) && listener(value);
|
|
58
62
|
break;
|
|
59
|
-
default:
|
|
60
|
-
listener && listener((value));
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
65
|
subscribe(listener) {
|
|
@@ -156,7 +158,7 @@ class Observable {
|
|
|
156
158
|
const length = this.listeners.length;
|
|
157
159
|
for (let i = 0; i < length; i++) {
|
|
158
160
|
const listener = this.listeners[i];
|
|
159
|
-
listener
|
|
161
|
+
listener.send(value);
|
|
160
162
|
}
|
|
161
163
|
this.isNextProcess = false;
|
|
162
164
|
this.listenersForUnsubscribe.length && this.handleListenersForUnsubscribe();
|
|
@@ -172,14 +174,13 @@ class Observable {
|
|
|
172
174
|
unSubscribe(listener) {
|
|
173
175
|
if (this._isDestroyed)
|
|
174
176
|
return;
|
|
175
|
-
if (this.isNextProcess) {
|
|
177
|
+
if (this.isNextProcess && listener) {
|
|
176
178
|
const marker = listener;
|
|
177
179
|
!marker.isMarkedForUnsubscribe && this.listenersForUnsubscribe.push(listener);
|
|
178
180
|
marker.isMarkedForUnsubscribe = true;
|
|
179
181
|
return;
|
|
180
182
|
}
|
|
181
|
-
this.listeners &&
|
|
182
|
-
!(0, FunctionLibs_1.deleteFromArray)(this.listeners, listener);
|
|
183
|
+
this.listeners && FunctionLibs_1.deleteFromArray(this.listeners, listener);
|
|
183
184
|
}
|
|
184
185
|
destroy() {
|
|
185
186
|
this.value = 0;
|
|
@@ -190,12 +191,7 @@ class Observable {
|
|
|
190
191
|
unsubscribeAll() {
|
|
191
192
|
if (this._isDestroyed)
|
|
192
193
|
return;
|
|
193
|
-
|
|
194
|
-
const length = listeners.length;
|
|
195
|
-
for (let i = 0; i < length; i++) {
|
|
196
|
-
const subscriber = listeners.pop();
|
|
197
|
-
subscriber && subscriber.unsubscribe();
|
|
198
|
-
}
|
|
194
|
+
this.listeners.length = 0;
|
|
199
195
|
}
|
|
200
196
|
getValue() {
|
|
201
197
|
if (this._isDestroyed)
|
|
@@ -212,14 +208,14 @@ class Observable {
|
|
|
212
208
|
return undefined;
|
|
213
209
|
if (!listener)
|
|
214
210
|
return undefined;
|
|
215
|
-
const subscribeObject = new SubscribeObject(this, listener);
|
|
211
|
+
const subscribeObject = new SubscribeObject(this, listener, false);
|
|
216
212
|
this.listeners.push(subscribeObject);
|
|
217
213
|
return subscribeObject;
|
|
218
214
|
}
|
|
219
215
|
pipe() {
|
|
220
216
|
if (this._isDestroyed)
|
|
221
217
|
return undefined;
|
|
222
|
-
const subscribeObject = new SubscribeObject(this);
|
|
218
|
+
const subscribeObject = new SubscribeObject(this, undefined, true);
|
|
223
219
|
this.listeners.push(subscribeObject);
|
|
224
220
|
return subscribeObject;
|
|
225
221
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Observable, SubscribeObject } from "./Observable";
|
|
2
2
|
import { ICallback, IListener, IOrdered, IOrderedSetup, IOrderedSubscribe, IOrderedSubscriptionLike } from "./Types";
|
|
3
3
|
export declare class OrderedSubscribeObject<T> extends SubscribeObject<T> {
|
|
4
|
-
constructor(observable: OrderedObservable<T> | IOrdered<T>, listener?: IListener<T
|
|
4
|
+
constructor(observable: OrderedObservable<T> | IOrdered<T>, listener?: IListener<T>, isPipe?: boolean);
|
|
5
5
|
get order(): number;
|
|
6
6
|
set order(value: number);
|
|
7
7
|
subscribe(listener: IListener<T>): IOrderedSubscriptionLike<T>;
|
|
@@ -13,7 +13,7 @@ export declare class OrderedSubscribeObject<T> extends SubscribeObject<T> {
|
|
|
13
13
|
emitMatch(condition: ICallback<any>): IOrderedSubscribe<T>;
|
|
14
14
|
}
|
|
15
15
|
export declare class OrderedObservable<T> extends Observable<T> implements IOrdered<T> {
|
|
16
|
-
sortByOrder():
|
|
16
|
+
sortByOrder(): boolean;
|
|
17
17
|
subscribe(listener: IListener<T>): IOrderedSubscriptionLike<T> | undefined;
|
|
18
18
|
pipe(): IOrderedSetup<T> | undefined;
|
|
19
19
|
}
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.OrderedObservable = exports.OrderedSubscribeObject = void 0;
|
|
4
4
|
const Observable_1 = require("./Observable");
|
|
5
5
|
class OrderedSubscribeObject extends Observable_1.SubscribeObject {
|
|
6
|
-
constructor(observable, listener) {
|
|
7
|
-
super(observable, listener);
|
|
6
|
+
constructor(observable, listener, isPipe) {
|
|
7
|
+
super(observable, listener, isPipe);
|
|
8
8
|
}
|
|
9
9
|
get order() {
|
|
10
10
|
return this._order;
|
|
@@ -45,7 +45,7 @@ exports.OrderedSubscribeObject = OrderedSubscribeObject;
|
|
|
45
45
|
class OrderedObservable extends Observable_1.Observable {
|
|
46
46
|
sortByOrder() {
|
|
47
47
|
if (this._isDestroyed)
|
|
48
|
-
return
|
|
48
|
+
return false;
|
|
49
49
|
this.listeners.sort((a, b) => {
|
|
50
50
|
if (a.order > b.order)
|
|
51
51
|
return 1;
|
|
@@ -53,20 +53,21 @@ class OrderedObservable extends Observable_1.Observable {
|
|
|
53
53
|
return -1;
|
|
54
54
|
return 0;
|
|
55
55
|
});
|
|
56
|
+
return true;
|
|
56
57
|
}
|
|
57
58
|
subscribe(listener) {
|
|
58
59
|
if (this._isDestroyed)
|
|
59
60
|
return undefined;
|
|
60
61
|
if (!listener)
|
|
61
62
|
return undefined;
|
|
62
|
-
const subscribeObject = new OrderedSubscribeObject(this, listener);
|
|
63
|
+
const subscribeObject = new OrderedSubscribeObject(this, listener, false);
|
|
63
64
|
this.listeners.push(subscribeObject);
|
|
64
65
|
return subscribeObject;
|
|
65
66
|
}
|
|
66
67
|
pipe() {
|
|
67
68
|
if (this._isDestroyed)
|
|
68
69
|
return undefined;
|
|
69
|
-
const subscribeObject = new OrderedSubscribeObject(this);
|
|
70
|
+
const subscribeObject = new OrderedSubscribeObject(this, undefined, true);
|
|
70
71
|
this.listeners.push(subscribeObject);
|
|
71
72
|
return subscribeObject;
|
|
72
73
|
}
|
package/src/outLib/Types.d.ts
CHANGED
|
@@ -91,7 +91,7 @@ export type ICollector = IDestroy & ISubscribeCounter & {
|
|
|
91
91
|
unsubscribeAll(): void;
|
|
92
92
|
};
|
|
93
93
|
export type IOrderedObservable = {
|
|
94
|
-
sortByOrder():
|
|
94
|
+
sortByOrder(): boolean;
|
|
95
95
|
};
|
|
96
96
|
export type IOrdered<T> = IObserver<T> & IOrderedObservable;
|
|
97
97
|
export type IOrderedSubscriptionLike<T> = (ISubscriptionLike<T> & IOrder);
|