@reactivex/ix-esnext-esm
Version:
The Interactive Extensions for JavaScript
22 lines (21 loc) • 1.27 kB
TypeScript
import { AsyncIterableX } from '../asynciterablex';
import { MonoTypeOperatorAsyncFunction } from '../../interfaces';
export declare class ExpandAsyncIterable<TSource> extends AsyncIterableX<TSource> {
private _source;
private _selector;
constructor(source: AsyncIterable<TSource>, selector: (value: TSource, signal?: AbortSignal) => AsyncIterable<TSource> | Promise<AsyncIterable<TSource>>);
[Symbol.asyncIterator](signal?: AbortSignal): AsyncGenerator<TSource, void, unknown>;
}
/**
* Expands (breadth first) the async-iterable sequence by recursively applying a selector function to generate more sequences at each recursion level.
*
* @export
* @template TSource Source sequence element type.
* @param {((
* value: TSource,
* signal?: AbortSignal
* ) => AsyncIterable<TSource> | Promise<AsyncIterable<TSource>>)} selector Selector function to retrieve the next sequence to expand.
* @returns {MonoTypeOperatorAsyncFunction<TSource>} An operator which returns a sequence with results
* from the recursive expansion of the source sequence.
*/
export declare function expand<TSource>(selector: (value: TSource, signal?: AbortSignal) => AsyncIterable<TSource> | Promise<AsyncIterable<TSource>>): MonoTypeOperatorAsyncFunction<TSource>;