diff options
Diffstat (limited to 'tools/node_modules/eslint/node_modules/rxjs/src/internal/util/canReportError.ts')
-rw-r--r-- | tools/node_modules/eslint/node_modules/rxjs/src/internal/util/canReportError.ts | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/util/canReportError.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/util/canReportError.ts new file mode 100644 index 0000000000..deed48eebf --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/util/canReportError.ts @@ -0,0 +1,22 @@ +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; +} |