BREAKING CHANGE(scope): switch to @pushrocks scope
This commit is contained in:
@@ -1,49 +1,49 @@
|
||||
import * as plugins from './smartrx.plugins'
|
||||
import { Observable, Subscription } from 'rxjs'
|
||||
import { Deferred } from 'smartq'
|
||||
import * as plugins from './smartrx.plugins';
|
||||
import { Observable, Subscription } from 'rxjs';
|
||||
import { Deferred } from 'smartq';
|
||||
|
||||
/**
|
||||
* ObservableIntake
|
||||
*/
|
||||
export class ObservableIntake<T> {
|
||||
observable: Observable<T>
|
||||
completed: Promise<void>
|
||||
private completedDeffered: Deferred<void>
|
||||
observable: Observable<T>;
|
||||
completed: Promise<void>;
|
||||
private completedDeffered: Deferred<void>;
|
||||
private observableFunctions: any = {
|
||||
next: (payloadArg) => {
|
||||
next: payloadArg => {
|
||||
// nothing
|
||||
},
|
||||
complete: (payloadArg) => {
|
||||
complete: payloadArg => {
|
||||
// nothing
|
||||
}
|
||||
}
|
||||
private generator = null
|
||||
private buffered = false
|
||||
private payloadBuffer = []
|
||||
};
|
||||
private generator = null;
|
||||
private buffered = false;
|
||||
private payloadBuffer = [];
|
||||
|
||||
constructor () {
|
||||
this.observable = Observable.create((observerArg) => {
|
||||
constructor() {
|
||||
this.observable = Observable.create(observerArg => {
|
||||
this.observableFunctions.next = (...args) => {
|
||||
return observerArg.next(...args)
|
||||
}
|
||||
return observerArg.next(...args);
|
||||
};
|
||||
this.observableFunctions.complete = (...args) => {
|
||||
this.completedDeffered.resolve()
|
||||
return observerArg.complete(...args)
|
||||
}
|
||||
})
|
||||
this.completedDeffered = plugins.smartq.defer()
|
||||
this.completed = this.completedDeffered.promise
|
||||
this.completedDeffered.resolve();
|
||||
return observerArg.complete(...args);
|
||||
};
|
||||
});
|
||||
this.completedDeffered = plugins.smartpromise.defer();
|
||||
this.completed = this.completedDeffered.promise;
|
||||
}
|
||||
|
||||
setObservable (observableFunc) {
|
||||
this.observable = observableFunc()
|
||||
setObservable(observableFunc) {
|
||||
this.observable = observableFunc();
|
||||
}
|
||||
|
||||
push (payloadArg: T) {
|
||||
push(payloadArg: T) {
|
||||
if (this.buffered) {
|
||||
this.payloadBuffer.push(payloadArg)
|
||||
this.payloadBuffer.push(payloadArg);
|
||||
} else {
|
||||
this.internalPush(payloadArg)
|
||||
this.internalPush(payloadArg);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,9 +51,9 @@ export class ObservableIntake<T> {
|
||||
* pushes many payloads as array
|
||||
* @param payloadArgArray
|
||||
*/
|
||||
pushMany (payloadArgArray: T[]) {
|
||||
pushMany(payloadArgArray: T[]) {
|
||||
for (let item of payloadArgArray) {
|
||||
this.push(item)
|
||||
this.push(item);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,32 +61,32 @@ export class ObservableIntake<T> {
|
||||
* sets a generator to query the next pushed value
|
||||
* @param generatorArg
|
||||
*/
|
||||
setGenerator (generatorArg) {
|
||||
this.generator = generatorArg
|
||||
setGenerator(generatorArg) {
|
||||
this.generator = generatorArg;
|
||||
}
|
||||
|
||||
makeBuffered() {
|
||||
this.buffered = true
|
||||
this.buffered = true;
|
||||
}
|
||||
|
||||
subscribe (...args) {
|
||||
return this.observable.subscribe(...args)
|
||||
subscribe(...args) {
|
||||
return this.observable.subscribe(...args);
|
||||
}
|
||||
|
||||
/**
|
||||
* request the next values in the quantity specified
|
||||
* @param howManyArg if a generator is set, of a buffer exists, this allows retrieving values
|
||||
*/
|
||||
request (howManyArg: number) {
|
||||
request(howManyArg: number) {
|
||||
if (howManyArg === 0) {
|
||||
return
|
||||
return;
|
||||
} else {
|
||||
for (let i = 0; i !== howManyArg; i++) {
|
||||
if (this.payloadBuffer.length > 0) {
|
||||
this.internalPush(this.payloadBuffer.shift())
|
||||
this.internalPush(this.payloadBuffer.shift());
|
||||
} else {
|
||||
const nextPayload = this.generator()
|
||||
this.internalPush(nextPayload)
|
||||
const nextPayload = this.generator();
|
||||
this.internalPush(nextPayload);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -95,11 +95,11 @@ export class ObservableIntake<T> {
|
||||
/**
|
||||
* signals the completion of this observable
|
||||
*/
|
||||
signalComplete () {
|
||||
this.observableFunctions.complete()
|
||||
signalComplete() {
|
||||
this.observableFunctions.complete();
|
||||
}
|
||||
|
||||
private internalPush (payloadArg) {
|
||||
this.observableFunctions.next(payloadArg)
|
||||
private internalPush(payloadArg) {
|
||||
this.observableFunctions.next(payloadArg);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user