35 lines
1.2 KiB
JavaScript
35 lines
1.2 KiB
JavaScript
|
import { Observable } from '../Observable';
|
||
|
import { isPromise } from '../util/isPromise';
|
||
|
import { isArrayLike } from '../util/isArrayLike';
|
||
|
import { isInteropObservable } from '../util/isInteropObservable';
|
||
|
import { isIterable } from '../util/isIterable';
|
||
|
import { fromArray } from './fromArray';
|
||
|
import { fromPromise } from './fromPromise';
|
||
|
import { fromIterable } from './fromIterable';
|
||
|
import { fromObservable } from './fromObservable';
|
||
|
import { subscribeTo } from '../util/subscribeTo';
|
||
|
export function from(input, scheduler) {
|
||
|
if (!scheduler) {
|
||
|
if (input instanceof Observable) {
|
||
|
return input;
|
||
|
}
|
||
|
return new Observable(subscribeTo(input));
|
||
|
}
|
||
|
if (input != null) {
|
||
|
if (isInteropObservable(input)) {
|
||
|
return fromObservable(input, scheduler);
|
||
|
}
|
||
|
else if (isPromise(input)) {
|
||
|
return fromPromise(input, scheduler);
|
||
|
}
|
||
|
else if (isArrayLike(input)) {
|
||
|
return fromArray(input, scheduler);
|
||
|
}
|
||
|
else if (isIterable(input) || typeof input === 'string') {
|
||
|
return fromIterable(input, scheduler);
|
||
|
}
|
||
|
}
|
||
|
throw new TypeError((input !== null && typeof input || input) + ' is not observable');
|
||
|
}
|
||
|
//# sourceMappingURL=from.js.map
|