blob: deed48eebf1f396b97f9020a4a49aa844ca71cd1 [file] [log] [blame]
import { Subscriber } from '../Subscriber';
import { Subject } from '../Subject';
/**
* Determines whether the ErrorObserver is closed or stopped or has a
* destination that is closed or stopped - in which case errors will
* need to be reported via a different mechanism.
* @param observer the observer
*/
export function canReportError(observer: Subscriber<any> | Subject<any>): boolean {
while (observer) {
const { closed, destination, isStopped } = observer as any;
if (closed || isStopped) {
return false;
} else if (destination && destination instanceof Subscriber) {
observer = destination;
} else {
observer = null;
}
}
return true;
}