evg_observable 1.1.33 → 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "evg_observable",
3
- "version": "1.1.33",
3
+ "version": "1.2.33",
4
4
  "description": "Light observable",
5
5
  "directories": {
6
6
  "test": "test"
@@ -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>, listener?: IListener<T>, isPipe?: boolean);
16
+ constructor(observable?: IObserver<T>, isPipe?: boolean);
16
17
  private static callbackSend;
17
- subscribe(listener: IListener<T>): ISubscriptionLike<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>): ISubscriptionLike<T> | undefined;
50
+ subscribe(listener: IListener<T>, errorHandler?: IErrorCallback): ISubscriptionLike<T> | undefined;
50
51
  pipe(): ISetup<T> | undefined;
51
52
  get isDestroyed(): boolean;
52
53
  }
@@ -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, listener, isPipe) {
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
- console.log('(Unit of SubscribeObject).send(value: T) ERROR:', err);
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
- () => `ERROR CONDITION TYPE ${typeof condition}, CONTROL STATE ${this.observable && !this.observable.getValue()}`;
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
- const listener = this.listeners[i];
161
- listener.send(value);
163
+ this.listeners[i].send(value);
162
164
  }
163
165
  this.isNextProcess = false;
164
166
  this.listenersForUnsubscribe.length && this.handleListenersForUnsubscribe();
@@ -203,19 +205,20 @@ class Observable {
203
205
  return 0;
204
206
  return this.listeners.length;
205
207
  }
206
- subscribe(listener) {
208
+ subscribe(listener, errorHandler) {
207
209
  if (this._isDestroyed)
208
210
  return undefined;
209
211
  if (!listener)
210
212
  return undefined;
211
- const subscribeObject = new SubscribeObject(this, listener, false);
213
+ const subscribeObject = new SubscribeObject(this, false);
214
+ subscribeObject.subscribe(listener, errorHandler);
212
215
  this.listeners.push(subscribeObject);
213
216
  return subscribeObject;
214
217
  }
215
218
  pipe() {
216
219
  if (this._isDestroyed)
217
220
  return undefined;
218
- const subscribeObject = new SubscribeObject(this, undefined, true);
221
+ const subscribeObject = new SubscribeObject(this, true);
219
222
  this.listeners.push(subscribeObject);
220
223
  return subscribeObject;
221
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>, listener?: IListener<T>, isPipe?: boolean);
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>): IOrderedSubscriptionLike<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>;
@@ -14,6 +14,6 @@ export declare class OrderedSubscribeObject<T> extends SubscribeObject<T> {
14
14
  }
15
15
  export declare class OrderedObservable<T> extends Observable<T> implements IOrdered<T> {
16
16
  sortByOrder(): boolean;
17
- subscribe(listener: IListener<T>): IOrderedSubscriptionLike<T> | undefined;
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, listener, isPipe) {
7
- super(observable, listener, isPipe);
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() {
@@ -55,19 +56,20 @@ class OrderedObservable extends Observable_1.Observable {
55
56
  });
56
57
  return true;
57
58
  }
58
- subscribe(listener) {
59
+ subscribe(listener, errorHandler) {
59
60
  if (this._isDestroyed)
60
61
  return undefined;
61
62
  if (!listener)
62
63
  return undefined;
63
- const subscribeObject = new OrderedSubscribeObject(this, listener, false);
64
+ const subscribeObject = new OrderedSubscribeObject(this, false);
65
+ subscribeObject.subscribe(listener, errorHandler);
64
66
  this.listeners.push(subscribeObject);
65
67
  return subscribeObject;
66
68
  }
67
69
  pipe() {
68
70
  if (this._isDestroyed)
69
71
  return undefined;
70
- const subscribeObject = new OrderedSubscribeObject(this, undefined, true);
72
+ const subscribeObject = new OrderedSubscribeObject(this, true);
71
73
  this.listeners.push(subscribeObject);
72
74
  return subscribeObject;
73
75
  }
@@ -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>): ISubscriptionLike<T> | undefined;
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 = {
@@ -96,7 +97,7 @@ export type IOrderedObservable = {
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>): IOrderedSubscriptionLike<T>;
100
+ subscribe(listener: IListener<T>, errorHandler?: IErrorCallback): IOrderedSubscriptionLike<T>;
100
101
  };
101
102
  export type IGroup = ICollector & {
102
103
  name: string;