import { Subscribable, Source, Sink, Scheduler } from '../interfaces' export class FromObservableSource implements Source { constructor (private observable: Subscribable) { } run (sink: Sink, scheduler: Scheduler) { const next = (x: T) => sink.event(scheduler.now(), x) const error = (e: Error) => sink.error(scheduler.now(), e) const complete = (x?: T) => sink.end(scheduler.now(), x) const subscription = this.observable.subscribe({ next, error, complete }) return { dispose: () => subscription.unsubscribe() } } }