evg_observable 1.1.32 → 1.2.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
|
@@ -16,7 +16,8 @@ class Collector {
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
unsubscribe(subscriptionLike) {
|
|
19
|
-
if (this._isDestroyed)
|
|
19
|
+
if (this._isDestroyed)
|
|
20
|
+
return null;
|
|
20
21
|
subscriptionLike && subscriptionLike.unsubscribe();
|
|
21
22
|
FunctionLibs_1.deleteFromArray(this.list, subscriptionLike);
|
|
22
23
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { ICallback, IListener, IMarkedForUnsubscribe, IObserver, ISetup, ISubscribe, ISubscribeObject, ISubscriptionLike } from "./Types";
|
|
1
|
+
import { ICallback, IErrorCallback, IListener, IMarkedForUnsubscribe, IObserver, ISetup, ISubscribe, ISubscribeObject, ISubscriptionLike } from "./Types";
|
|
2
2
|
export declare class SubscribeObject<T> implements ISubscribeObject<T>, IMarkedForUnsubscribe {
|
|
3
3
|
isMarkedForUnsubscribe: boolean;
|
|
4
4
|
protected observable: IObserver<T> | undefined;
|
|
5
5
|
protected listener: IListener<T> | undefined;
|
|
6
|
+
protected errorHandler: IErrorCallback;
|
|
6
7
|
protected _order: number;
|
|
7
8
|
private isListenPaused;
|
|
8
9
|
private once;
|
|
@@ -12,9 +13,9 @@ export declare class SubscribeObject<T> implements ISubscribeObject<T>, IMarkedF
|
|
|
12
13
|
private emitByPositiveCondition;
|
|
13
14
|
private emitMatchCondition;
|
|
14
15
|
protected isPipe: boolean;
|
|
15
|
-
constructor(observable?: IObserver<T>,
|
|
16
|
+
constructor(observable?: IObserver<T>, isPipe?: boolean);
|
|
16
17
|
private static callbackSend;
|
|
17
|
-
subscribe(listener: IListener<T
|
|
18
|
+
subscribe(listener: IListener<T>, errorHandler?: IErrorCallback): ISubscriptionLike<T>;
|
|
18
19
|
unsubscribe(): void;
|
|
19
20
|
send(value: T): void;
|
|
20
21
|
setOnce(): ISubscribe<T>;
|
|
@@ -46,7 +47,7 @@ export declare class Observable<T> implements IObserver<T> {
|
|
|
46
47
|
unsubscribeAll(): void;
|
|
47
48
|
getValue(): T | undefined;
|
|
48
49
|
size(): number;
|
|
49
|
-
subscribe(listener: IListener<T
|
|
50
|
+
subscribe(listener: IListener<T>, errorHandler?: IErrorCallback): ISubscriptionLike<T> | undefined;
|
|
50
51
|
pipe(): ISetup<T> | undefined;
|
|
51
52
|
get isDestroyed(): boolean;
|
|
52
53
|
}
|
package/src/outLib/Observable.js
CHANGED
|
@@ -3,8 +3,11 @@ 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,
|
|
6
|
+
constructor(observable, isPipe) {
|
|
7
7
|
this.isMarkedForUnsubscribe = false;
|
|
8
|
+
this.errorHandler = (errorData, errorMessage) => {
|
|
9
|
+
console.log(`(Unit of SubscribeObject).send(${errorData}) ERROR:`, errorMessage);
|
|
10
|
+
};
|
|
8
11
|
this._order = 0;
|
|
9
12
|
this.isListenPaused = false;
|
|
10
13
|
this.once = { isOnce: false, isFinished: false };
|
|
@@ -15,7 +18,6 @@ class SubscribeObject {
|
|
|
15
18
|
this.emitMatchCondition = null;
|
|
16
19
|
this.isPipe = false;
|
|
17
20
|
this.observable = observable;
|
|
18
|
-
this.listener = listener;
|
|
19
21
|
this.isPipe = !!isPipe;
|
|
20
22
|
}
|
|
21
23
|
static callbackSend(value, subsObj) {
|
|
@@ -62,8 +64,9 @@ class SubscribeObject {
|
|
|
62
64
|
break;
|
|
63
65
|
}
|
|
64
66
|
}
|
|
65
|
-
subscribe(listener) {
|
|
67
|
+
subscribe(listener, errorHandler) {
|
|
66
68
|
this.listener = listener;
|
|
69
|
+
errorHandler && (this.errorHandler = errorHandler);
|
|
67
70
|
return this;
|
|
68
71
|
}
|
|
69
72
|
unsubscribe() {
|
|
@@ -78,7 +81,7 @@ class SubscribeObject {
|
|
|
78
81
|
SubscribeObject.callbackSend(value, this);
|
|
79
82
|
}
|
|
80
83
|
catch (err) {
|
|
81
|
-
|
|
84
|
+
this.errorHandler(value, err);
|
|
82
85
|
}
|
|
83
86
|
}
|
|
84
87
|
setOnce() {
|
|
@@ -110,9 +113,9 @@ class SubscribeObject {
|
|
|
110
113
|
return this;
|
|
111
114
|
}
|
|
112
115
|
emitMatch(condition) {
|
|
113
|
-
if (typeof condition !== "function")
|
|
114
|
-
condition =
|
|
115
|
-
|
|
116
|
+
if (typeof condition !== "function") {
|
|
117
|
+
condition = () => `ERROR CONDITION TYPE ${typeof condition}, CONTROL STATE ${this.observable && !this.observable.getValue()}`;
|
|
118
|
+
}
|
|
116
119
|
this.emitMatchCondition = condition;
|
|
117
120
|
return this;
|
|
118
121
|
}
|
|
@@ -157,8 +160,7 @@ class Observable {
|
|
|
157
160
|
this.isNextProcess = true;
|
|
158
161
|
const length = this.listeners.length;
|
|
159
162
|
for (let i = 0; i < length; i++) {
|
|
160
|
-
|
|
161
|
-
listener.send(value);
|
|
163
|
+
this.listeners[i].send(value);
|
|
162
164
|
}
|
|
163
165
|
this.isNextProcess = false;
|
|
164
166
|
this.listenersForUnsubscribe.length && this.handleListenersForUnsubscribe();
|
|
@@ -174,7 +176,7 @@ class Observable {
|
|
|
174
176
|
unSubscribe(listener) {
|
|
175
177
|
if (this._isDestroyed)
|
|
176
178
|
return;
|
|
177
|
-
if (this.isNextProcess) {
|
|
179
|
+
if (this.isNextProcess && listener) {
|
|
178
180
|
const marker = listener;
|
|
179
181
|
!marker.isMarkedForUnsubscribe && this.listenersForUnsubscribe.push(listener);
|
|
180
182
|
marker.isMarkedForUnsubscribe = true;
|
|
@@ -191,12 +193,7 @@ class Observable {
|
|
|
191
193
|
unsubscribeAll() {
|
|
192
194
|
if (this._isDestroyed)
|
|
193
195
|
return;
|
|
194
|
-
|
|
195
|
-
const length = listeners.length;
|
|
196
|
-
for (let i = 0; i < length; i++) {
|
|
197
|
-
const subscriber = listeners.pop();
|
|
198
|
-
subscriber && subscriber.unsubscribe();
|
|
199
|
-
}
|
|
196
|
+
this.listeners.length = 0;
|
|
200
197
|
}
|
|
201
198
|
getValue() {
|
|
202
199
|
if (this._isDestroyed)
|
|
@@ -208,19 +205,20 @@ class Observable {
|
|
|
208
205
|
return 0;
|
|
209
206
|
return this.listeners.length;
|
|
210
207
|
}
|
|
211
|
-
subscribe(listener) {
|
|
208
|
+
subscribe(listener, errorHandler) {
|
|
212
209
|
if (this._isDestroyed)
|
|
213
210
|
return undefined;
|
|
214
211
|
if (!listener)
|
|
215
212
|
return undefined;
|
|
216
|
-
const subscribeObject = new SubscribeObject(this,
|
|
213
|
+
const subscribeObject = new SubscribeObject(this, false);
|
|
214
|
+
subscribeObject.subscribe(listener, errorHandler);
|
|
217
215
|
this.listeners.push(subscribeObject);
|
|
218
216
|
return subscribeObject;
|
|
219
217
|
}
|
|
220
218
|
pipe() {
|
|
221
219
|
if (this._isDestroyed)
|
|
222
220
|
return undefined;
|
|
223
|
-
const subscribeObject = new SubscribeObject(this,
|
|
221
|
+
const subscribeObject = new SubscribeObject(this, true);
|
|
224
222
|
this.listeners.push(subscribeObject);
|
|
225
223
|
return subscribeObject;
|
|
226
224
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Observable, SubscribeObject } from "./Observable";
|
|
2
|
-
import { ICallback, IListener, IOrdered, IOrderedSetup, IOrderedSubscribe, IOrderedSubscriptionLike } from "./Types";
|
|
2
|
+
import { ICallback, IErrorCallback, IListener, IOrdered, IOrderedSetup, IOrderedSubscribe, IOrderedSubscriptionLike } from "./Types";
|
|
3
3
|
export declare class OrderedSubscribeObject<T> extends SubscribeObject<T> {
|
|
4
|
-
constructor(observable: OrderedObservable<T> | IOrdered<T>,
|
|
4
|
+
constructor(observable: OrderedObservable<T> | IOrdered<T>, isPipe?: boolean);
|
|
5
5
|
get order(): number;
|
|
6
6
|
set order(value: number);
|
|
7
|
-
subscribe(listener: IListener<T
|
|
7
|
+
subscribe(listener: IListener<T>, errorHandler?: IErrorCallback): IOrderedSubscriptionLike<T>;
|
|
8
8
|
setOnce(): IOrderedSubscribe<T>;
|
|
9
9
|
unsubscribeByNegative(condition: ICallback<any>): IOrderedSubscribe<T>;
|
|
10
10
|
unsubscribeByPositive(condition: ICallback<any>): IOrderedSubscribe<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():
|
|
17
|
-
subscribe(listener: IListener<T
|
|
16
|
+
sortByOrder(): boolean;
|
|
17
|
+
subscribe(listener: IListener<T>, errorHandler?: IErrorCallback): 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,
|
|
7
|
-
super(observable,
|
|
6
|
+
constructor(observable, isPipe) {
|
|
7
|
+
super(observable, isPipe);
|
|
8
8
|
}
|
|
9
9
|
get order() {
|
|
10
10
|
return this._order;
|
|
@@ -18,8 +18,9 @@ class OrderedSubscribeObject extends Observable_1.SubscribeObject {
|
|
|
18
18
|
this._order = value;
|
|
19
19
|
this.observable.sortByOrder();
|
|
20
20
|
}
|
|
21
|
-
subscribe(listener) {
|
|
21
|
+
subscribe(listener, errorHandler) {
|
|
22
22
|
this.listener = listener;
|
|
23
|
+
errorHandler && (this.errorHandler = errorHandler);
|
|
23
24
|
return this;
|
|
24
25
|
}
|
|
25
26
|
setOnce() {
|
|
@@ -45,7 +46,7 @@ exports.OrderedSubscribeObject = OrderedSubscribeObject;
|
|
|
45
46
|
class OrderedObservable extends Observable_1.Observable {
|
|
46
47
|
sortByOrder() {
|
|
47
48
|
if (this._isDestroyed)
|
|
48
|
-
return
|
|
49
|
+
return false;
|
|
49
50
|
this.listeners.sort((a, b) => {
|
|
50
51
|
if (a.order > b.order)
|
|
51
52
|
return 1;
|
|
@@ -53,20 +54,22 @@ class OrderedObservable extends Observable_1.Observable {
|
|
|
53
54
|
return -1;
|
|
54
55
|
return 0;
|
|
55
56
|
});
|
|
57
|
+
return true;
|
|
56
58
|
}
|
|
57
|
-
subscribe(listener) {
|
|
59
|
+
subscribe(listener, errorHandler) {
|
|
58
60
|
if (this._isDestroyed)
|
|
59
61
|
return undefined;
|
|
60
62
|
if (!listener)
|
|
61
63
|
return undefined;
|
|
62
|
-
const subscribeObject = new OrderedSubscribeObject(this,
|
|
64
|
+
const subscribeObject = new OrderedSubscribeObject(this, false);
|
|
65
|
+
subscribeObject.subscribe(listener, errorHandler);
|
|
63
66
|
this.listeners.push(subscribeObject);
|
|
64
67
|
return subscribeObject;
|
|
65
68
|
}
|
|
66
69
|
pipe() {
|
|
67
70
|
if (this._isDestroyed)
|
|
68
71
|
return undefined;
|
|
69
|
-
const subscribeObject = new OrderedSubscribeObject(this,
|
|
72
|
+
const subscribeObject = new OrderedSubscribeObject(this, true);
|
|
70
73
|
this.listeners.push(subscribeObject);
|
|
71
74
|
return subscribeObject;
|
|
72
75
|
}
|
package/src/outLib/Types.d.ts
CHANGED
|
@@ -2,8 +2,9 @@ export type ICallback<T> = (value?: T) => any;
|
|
|
2
2
|
export type IMarkedForUnsubscribe = {
|
|
3
3
|
isMarkedForUnsubscribe: boolean;
|
|
4
4
|
};
|
|
5
|
+
export type IErrorCallback = (errorData: any, errorMessage: any) => void;
|
|
5
6
|
export type ISubscribe<T> = {
|
|
6
|
-
subscribe(listener: IListener<T
|
|
7
|
+
subscribe(listener: IListener<T>, errorHandler?: IErrorCallback): ISubscriptionLike<T> | undefined;
|
|
7
8
|
};
|
|
8
9
|
export type IListener<T> = ICallback<T>;
|
|
9
10
|
export type IDestroy = {
|
|
@@ -91,12 +92,12 @@ export type ICollector = IDestroy & ISubscribeCounter & {
|
|
|
91
92
|
unsubscribeAll(): void;
|
|
92
93
|
};
|
|
93
94
|
export type IOrderedObservable = {
|
|
94
|
-
sortByOrder():
|
|
95
|
+
sortByOrder(): boolean;
|
|
95
96
|
};
|
|
96
97
|
export type IOrdered<T> = IObserver<T> & IOrderedObservable;
|
|
97
98
|
export type IOrderedSubscriptionLike<T> = (ISubscriptionLike<T> & IOrder);
|
|
98
99
|
export type IOrderedSubscribe<T> = {
|
|
99
|
-
subscribe(listener: IListener<T
|
|
100
|
+
subscribe(listener: IListener<T>, errorHandler?: IErrorCallback): IOrderedSubscriptionLike<T>;
|
|
100
101
|
};
|
|
101
102
|
export type IGroup = ICollector & {
|
|
102
103
|
name: string;
|