import { Subscriber } from '../Subscriber';
|
import { observable as Symbol_observable } from '../symbol/observable';
|
|
/**
|
* Subscribes to an object that implements Symbol.observable with the given
|
* Subscriber.
|
* @param obj An object that implements Symbol.observable
|
*/
|
export const subscribeToObservable = <T>(obj: any) => (subscriber: Subscriber<T>) => {
|
const obs = obj[Symbol_observable]();
|
if (typeof obs.subscribe !== 'function') {
|
// Should be caught by observable subscribe function error handling.
|
throw new TypeError('Provided object does not correctly implement Symbol.observable');
|
} else {
|
return obs.subscribe(subscriber);
|
}
|
};
|