1
0
This commit is contained in:
Herve BECHER
2024-10-14 07:38:23 +02:00
parent c2196e11c9
commit e5e6bffe1e
9 changed files with 193 additions and 309 deletions

View File

@@ -1,11 +1,13 @@
import { Collector } from "../collector/types.js";
import { AsyncRandomOptions } from "../random/types.js";
import { MaybeAsyncAnyPredicate, MaybeAsyncConverter, MaybeAsyncEquater, MaybeAsyncBiConverter, MaybeAsyncAccumulator, MaybeAsyncComparer, MaybeAsyncAction, MaybeAsyncSequence } from "../types.js";
import { MaybeAsyncAnyPredicate, MaybeAsyncConverter, MaybeAsyncEquater, MaybeAsyncBiConverter, MaybeAsyncAccumulator, MaybeAsyncComparer, MaybeAsyncAction, MaybeAsyncSequence, MaybeAsyncFunction, MaybePromise } from "../types.js";
export type AsyncSequencePipeline<TElement, TResult> = MaybeAsyncFunction<(sequence: AsyncSequence<TElement>) => TResult>;
export interface AsyncSequence<TElement> extends AsyncIterable<TElement> {
iterator(): AsyncIterator<TElement>;
apply<TResult>(pipeline: (sequence: AsyncSequence<TElement>) => TResult): TResult;
apply<TResult>(pipeline: AsyncSequencePipeline<TElement, TResult>): MaybePromise<TResult>;
count(predicate?: MaybeAsyncAnyPredicate<TElement>): Promise<number>;
nonEnumeratedCount(): Promise<number>;
@@ -105,8 +107,8 @@ export interface AsyncSequence<TElement> extends AsyncIterable<TElement> {
reversed(): AsyncSequence<TElement>;
chunked(size: number, asArray?: false): AsyncSequence<AsyncSequence<TElement>>;
chunked(size: number, asArray: true): AsyncSequence<TElement[]>;
chunked(size: number): AsyncSequence<AsyncSequence<TElement>>;
chunked<TResult>(size: number, transformer: AsyncSequencePipeline<TElement, TResult>): AsyncSequence<TResult>;
random(options?: AsyncRandomOptions<TElement>): Promise<TElement | undefined>;