@reactivex/ix-esnext-esm
Version:
The Interactive Extensions for JavaScript
29 lines (27 loc) • 1.07 kB
JavaScript
import { AsyncIterableX } from './asynciterablex';
import { isIterable, isAsyncIterable, isArrayLike, isObservable, isPromise } from '../util/isiterable';
import { identityAsync } from '../util/identity';
import { FromObservableAsyncIterable, FromPromiseIterable, FromAsyncIterable, FromArrayIterable } from './from';
/** @nocollapse */
export function as(source) {
if (source instanceof AsyncIterableX) {
return source;
}
if (typeof source === 'string') {
return new FromArrayIterable([source], identityAsync);
}
if (isIterable(source) || isAsyncIterable(source)) {
return new FromAsyncIterable(source, identityAsync);
}
if (isPromise(source)) {
return new FromPromiseIterable(source, identityAsync);
}
if (isObservable(source)) {
return new FromObservableAsyncIterable(source, identityAsync);
}
if (isArrayLike(source)) {
return new FromArrayIterable(source, identityAsync);
}
return new FromArrayIterable([source], identityAsync);
}
//# sourceMappingURL=as.mjs.map