Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / rxjs / src / internal / scheduled / scheduled.ts
1 import { scheduleObservable } from './scheduleObservable';
2 import { schedulePromise } from './schedulePromise';
3 import { scheduleArray } from './scheduleArray';
4 import { scheduleIterable } from './scheduleIterable';
5 import { ObservableInput, SchedulerLike, Observable } from 'rxjs';
6 import { isInteropObservable } from '../util/isInteropObservable';
7 import { isPromise } from '../util/isPromise';
8 import { isArrayLike } from '../util/isArrayLike';
9 import { isIterable } from '../util/isIterable';
10
11 /**
12  * Converts from a common {@link ObservableInput} type to an observable where subscription and emissions
13  * are scheduled on the provided scheduler.
14  *
15  * @see from
16  * @see of
17  *
18  * @param input The observable, array, promise, iterable, etc you would like to schedule
19  * @param scheduler The scheduler to use to schedule the subscription and emissions from
20  * the returned observable.
21  */
22 export function scheduled<T>(input: ObservableInput<T>, scheduler: SchedulerLike): Observable<T> {
23   if (input != null) {
24     if (isInteropObservable(input)) {
25       return scheduleObservable(input, scheduler);
26     } else if (isPromise(input)) {
27       return schedulePromise(input, scheduler);
28     } else if (isArrayLike(input)) {
29       return scheduleArray(input, scheduler);
30     }  else if (isIterable(input) || typeof input === 'string') {
31       return scheduleIterable(input, scheduler);
32     }
33   }
34
35   throw new TypeError((input !== null && typeof input || input) + ' is not observable');
36 }