summaryrefslogtreecommitdiff
path: root/tools/node_modules/eslint/node_modules/rxjs/src/internal/util/canReportError.ts
diff options
context:
space:
mode:
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.ts22
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;
+}