import { Subscriber } from '../Subscriber'; import { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber'; import { PartialObserver, empty as emptyObserver } from '../Observer'; export function toSubscriber( nextOrObserver?: PartialObserver | ((value: T) => void), error?: (error: any) => void, complete?: () => void): Subscriber { if (nextOrObserver) { if (nextOrObserver instanceof Subscriber) { return (> nextOrObserver); } if (nextOrObserver[rxSubscriberSymbol]) { return nextOrObserver[rxSubscriberSymbol](); } } if (!nextOrObserver && !error && !complete) { return new Subscriber(emptyObserver); } return new Subscriber(nextOrObserver, error, complete); }