now has working intake

This commit is contained in:
2017-11-01 14:59:28 +01:00
parent cd05c5c8d7
commit eb2d3e1b25
20 changed files with 185 additions and 58 deletions

View File

@ -2,4 +2,10 @@ import * as plugins from './smartrx.plugins'
export let standardExport = 'Hi there! :) This is a exported string'
export * from './smartrx.classes.observablemap'
export * from './smartrx.classes.observable'
export * from './smartrx.classes.observableintake'
import * as rxjs from 'rxjs'
export {
rxjs
}

View File

@ -1,8 +0,0 @@
import { Observable as rxjsObservable } from 'rxjs'
export {
rxjsObservable
}
export class Observable<T> extends rxjsObservable<T> {
static fromIntake () {}
}

View File

@ -0,0 +1,50 @@
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>
private observableFunctions: any = {
next: (payloadArg) => {
// nothing
},
complete: (payloadArg) => {
// nothing
}
}
constructor () {
this.observable = Observable.create((observerArg) => {
this.observableFunctions.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
}
setObservable (observableFunc) {
this.observable = observableFunc()
}
push (payloadArg: T) {
this.observableFunctions.next(payloadArg)
}
subscribe (...args) {
return this.observable.subscribe(...args)
}
signalComplete () {
this.observableFunctions.complete()
}
}

View File

@ -1,6 +1,5 @@
import * as plugins from './smartrx.plugins'
import { Observable, rxjsObservable } from './smartrx.classes.observable'
import { Observable } from 'rxjs'
import { Objectmap } from 'lik'
import { Stringmap } from 'lik'

View File

@ -2,9 +2,14 @@ import 'typings-global'
import * as events from 'events'
import * as lik from 'lik'
import * as rxjs from 'rxjs'
import * as smartevent from 'smartevent'
import * as smartq from 'smartq'
import 'typings-global'
export {
events,
lik,
rxjs
rxjs,
smartevent,
smartq
}