123456789101112131415161718192021222324252627282930 |
- import * as fs from 'fs'
- import path from 'path';
- import { isObservable, Observable, Observer, Subject } from 'rxjs';
- import ConsoleLogger from './log.utils';
- const console: ConsoleLogger = new ConsoleLogger(`GeneralUtils`, ['util'])
- function isRxObservable(value: any): value is Observable<any> {
- return isObservable(value);
- }
- function isRxObserver(value: any): value is Observer<any> {
- return (
- value &&
- typeof value === 'object' &&
- typeof value.next === 'function' &&
- typeof value.error === 'function' &&
- typeof value.complete === 'function'
- );
- }
- // Check specifically if the value is a Subject
- function isRxSubject(value: any): value is Subject<any> {
- return isRxObservable(value) && isRxObserver(value);
- }
- export function checkRxType(value: any): 'Subject' | 'Observable' | 'Observer' | 'Neither' {
- if (isRxSubject(value)) return 'Observer' // for now returns observer, because subject passes as Observable as well. Can modify at later date
- if (isRxObservable(value)) return 'Observable'
- if (isRxObserver(value)) return 'Observer'
- return 'Neither';
- }
|