blob: 7a4232ee8c32edb092c41f150586e754090aefae [file] [log] [blame]
export interface Subscription {
unsubscribe: () => void;
}
export interface Observer<T> {
closed?: boolean;
next: (value: T) => void;
error: (err: any) => void;
complete: () => void;
}
export interface Observable<T> {
subscribe: (observer: Observer<T>) => Subscription;
}
/**
* @ignore
*/
export function isPromise(x: any): x is PromiseLike<any> {
return x != null && Object(x) === x && typeof x['then'] === 'function';
}
/**
* @ignore
*/
export function isObservable(x: any): x is Observable<any> {
return x != null && Object(x) === x && typeof x['subscribe'] === 'function';
}
/**
* @ignore
*/
export function isArrayLike(x: any): x is ArrayLike<any> {
return x != null && Object(x) === x && typeof x['length'] === 'number';
}
/**
* @ignore
*/
export function isIterable(x: any): x is Iterable<any> {
return x != null && Object(x) === x && typeof x[Symbol.iterator] !== 'undefined';
}
/**
* @ignore
*/
export function isAsyncIterable(x: any): x is AsyncIterable<any> {
return x != null && Object(x) === x && typeof x[Symbol.asyncIterator] !== 'undefined';
}