import { Subscriber } from '../Subscriber'; import { $$rxSubscriber } 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[$$rxSubscriber]) { return nextOrObserver[$$rxSubscriber](); } } if (!nextOrObserver && !error && !complete) { return new Subscriber(emptyObserver); } return new Subscriber(nextOrObserver, error, complete); }