Making publicAPI also available on Observable class
This commit is contained in:
parent
d1fdb789c1
commit
edd37246fb
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@hibas123/utils",
|
"name": "@hibas123/utils",
|
||||||
"version": "2.1.0",
|
"version": "2.1.1",
|
||||||
"description": "Different Utilities, that are not worth own packages",
|
"description": "Different Utilities, that are not worth own packages",
|
||||||
"main": "lib/index.js",
|
"main": "lib/index.js",
|
||||||
"types": "lib/index.d.ts",
|
"types": "lib/index.d.ts",
|
||||||
@ -25,4 +25,4 @@
|
|||||||
"readme.md"
|
"readme.md"
|
||||||
],
|
],
|
||||||
"private": false
|
"private": false
|
||||||
}
|
}
|
@ -36,6 +36,38 @@ export default class Observable<T = any> {
|
|||||||
|
|
||||||
constructor(private collect_intervall: number = 100) { }
|
constructor(private collect_intervall: number = 100) { }
|
||||||
|
|
||||||
|
subscribe(callback: ObserverCallback<T>) {
|
||||||
|
if (this[ClosedSymbol])
|
||||||
|
throw new Error("Observable is closed!");
|
||||||
|
|
||||||
|
let oldcb = this.subscriber.find(e => e === callback);
|
||||||
|
if (!oldcb)
|
||||||
|
this.subscriber.push(callback)
|
||||||
|
}
|
||||||
|
|
||||||
|
unsubscribe(callback: ObserverCallback<T> | ObserverCallbackCollect<T>) {
|
||||||
|
if (this[ClosedSymbol])
|
||||||
|
return;
|
||||||
|
|
||||||
|
let idx = this.subscriber.findIndex(e => e === callback);
|
||||||
|
if (idx >= 0) {
|
||||||
|
this.subscriber.splice(idx, 1);
|
||||||
|
} else {
|
||||||
|
idx = this.subscriberCollect.findIndex(e => e === callback);
|
||||||
|
if (idx >= 0)
|
||||||
|
this.subscriberCollect.splice(idx, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
subscribeCollect(callback: ObserverCallbackCollect<T>) {
|
||||||
|
if (this[ClosedSymbol])
|
||||||
|
throw new Error("Observable is closed!");
|
||||||
|
|
||||||
|
let oldcb = this.subscriberCollect.find(e => e === callback);
|
||||||
|
if (!oldcb)
|
||||||
|
this.subscriberCollect.push(callback)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates Public API with subscribe and unsubscribe
|
* Creates Public API with subscribe and unsubscribe
|
||||||
*
|
*
|
||||||
@ -45,35 +77,9 @@ export default class Observable<T = any> {
|
|||||||
if (this[ClosedSymbol])
|
if (this[ClosedSymbol])
|
||||||
throw new Error("Observable is closed!");
|
throw new Error("Observable is closed!");
|
||||||
return {
|
return {
|
||||||
subscribe: (callback: ObserverCallback<T>) => {
|
subscribe: (callback: ObserverCallback<T>) => this.subscribe(callback),
|
||||||
if (this[ClosedSymbol])
|
unsubscribe: (callback: ObserverCallback<T> | ObserverCallbackCollect<T>) => this.unsubscribe(callback),
|
||||||
throw new Error("Observable is closed!");
|
subscribeCollect: (callback: ObserverCallbackCollect<T>) => this.subscribeCollect(callback)
|
||||||
|
|
||||||
let oldcb = this.subscriber.find(e => e === callback);
|
|
||||||
if (!oldcb)
|
|
||||||
this.subscriber.push(callback)
|
|
||||||
},
|
|
||||||
unsubscribe: (callback: ObserverCallback<T> | ObserverCallbackCollect<T>) => {
|
|
||||||
if (this[ClosedSymbol])
|
|
||||||
return;
|
|
||||||
|
|
||||||
let idx = this.subscriber.findIndex(e => e === callback);
|
|
||||||
if (idx >= 0) {
|
|
||||||
this.subscriber.splice(idx, 1);
|
|
||||||
} else {
|
|
||||||
idx = this.subscriberCollect.findIndex(e => e === callback);
|
|
||||||
if (idx >= 0)
|
|
||||||
this.subscriberCollect.splice(idx, 1);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
subscribeCollect: (callback: ObserverCallbackCollect<T>) => {
|
|
||||||
if (this[ClosedSymbol])
|
|
||||||
throw new Error("Observable is closed!");
|
|
||||||
|
|
||||||
let oldcb = this.subscriberCollect.find(e => e === callback);
|
|
||||||
if (!oldcb)
|
|
||||||
this.subscriberCollect.push(callback)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user